diff options
-rw-r--r-- | ui-patch.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ui-patch.c b/ui-patch.c index fd6316b..ec7f352 100644 --- a/ui-patch.c +++ b/ui-patch.c | |||
@@ -18,9 +18,13 @@ void cgit_print_patch(const char *new_rev, const char *old_rev, | |||
18 | struct commit *commit; | 18 | struct commit *commit; |
19 | struct object_id new_rev_oid, old_rev_oid; | 19 | struct object_id new_rev_oid, old_rev_oid; |
20 | char rev_range[2 * 40 + 3]; | 20 | char rev_range[2 * 40 + 3]; |
21 | char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range }; | 21 | const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix }; |
22 | int rev_argc = ARRAY_SIZE(rev_argv); | ||
22 | char *patchname; | 23 | char *patchname; |
23 | 24 | ||
25 | if (!prefix) | ||
26 | rev_argc--; | ||
27 | |||
24 | if (!new_rev) | 28 | if (!new_rev) |
25 | new_rev = ctx.qry.head; | 29 | new_rev = ctx.qry.head; |
26 | 30 | ||
@@ -79,7 +83,9 @@ void cgit_print_patch(const char *new_rev, const char *old_rev, | |||
79 | rev.max_parents = 1; | 83 | rev.max_parents = 1; |
80 | rev.diffopt.output_format |= DIFF_FORMAT_DIFFSTAT | | 84 | rev.diffopt.output_format |= DIFF_FORMAT_DIFFSTAT | |
81 | DIFF_FORMAT_PATCH | DIFF_FORMAT_SUMMARY; | 85 | DIFF_FORMAT_PATCH | DIFF_FORMAT_SUMMARY; |
82 | setup_revisions(ARRAY_SIZE(rev_argv), (const char **)rev_argv, &rev, | 86 | if (prefix) |
87 | rev.diffopt.stat_sep = fmt("(limited to '%s')\n\n", prefix); | ||
88 | setup_revisions(ARRAY_SIZE(rev_argv), rev_argv, &rev, | ||
83 | NULL); | 89 | NULL); |
84 | prepare_revision_walk(&rev); | 90 | prepare_revision_walk(&rev); |
85 | 91 | ||