about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohan Herland <johan@herland.net>2010-06-10 01:09:33 +0200
committerLars Hjemli <hjemli@gmail.com>2010-06-19 10:40:23 +0200
commiteac1b675414722ae90df75abc727b2795bc096f0 (patch)
tree4deb6c0ac103ab2f42750d6c7230d45366eb1732
parentui-commit: Limit diff based on path limit in qry.path (diff)
downloadcgit-magenta-eac1b675414722ae90df75abc727b2795bc096f0.tar.xz
ui-patch: Apply path limit to generated patch
Also indicate in the comment section of the patch that a path limit was
applied, too easily see when a generated patch is only partial.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--cmd.c2
-rw-r--r--ui-commit.c2
-rw-r--r--ui-patch.c6
-rw-r--r--ui-patch.h2
-rw-r--r--ui-shared.c4
-rw-r--r--ui-shared.h2
6 files changed, 10 insertions, 8 deletions
diff --git a/cmd.c b/cmd.c

index 893ae25..605876b 100644 --- a/cmd.c +++ b/cmd.c
@@ -90,7 +90,7 @@ static void repolist_fn(struct cgit_context *ctx) static void patch_fn(struct cgit_context *ctx) { - cgit_print_patch(ctx->qry.sha1); + cgit_print_patch(ctx->qry.sha1, ctx->qry.path); } static void plain_fn(struct cgit_context *ctx) diff --git a/ui-commit.c b/ui-commit.c
index 2f4c6d4..b3a2063 100644 --- a/ui-commit.c +++ b/ui-commit.c
@@ -60,7 +60,7 @@ void cgit_print_commit(char *hex, const char *prefix) tmp = sha1_to_hex(commit->object.sha1); cgit_commit_link(tmp, NULL, NULL, ctx.qry.head, tmp, 0); html(" ("); - cgit_patch_link("patch", NULL, NULL, NULL, tmp); + cgit_patch_link("patch", NULL, NULL, NULL, tmp, prefix); html(") ("); if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff)) cgit_commit_link("unidiff", NULL, NULL, ctx.qry.head, tmp, 1); diff --git a/ui-patch.c b/ui-patch.c
index 2a8f7a5..25dc9fe 100644 --- a/ui-patch.c +++ b/ui-patch.c
@@ -77,7 +77,7 @@ static void filepair_cb(struct diff_filepair *pair) html("Binary files differ\n"); } -void cgit_print_patch(char *hex) +void cgit_print_patch(char *hex, const char *prefix) { struct commit *commit; struct commitinfo *info; @@ -122,7 +122,9 @@ void cgit_print_patch(char *hex) html("\n"); } html("---\n"); - cgit_diff_tree(old_sha1, sha1, filepair_cb, NULL); + if (prefix) + htmlf("(limited to '%s')\n\n", prefix); + cgit_diff_tree(old_sha1, sha1, filepair_cb, prefix); html("--\n"); htmlf("cgit %s\n", CGIT_VERSION); cgit_free_commitinfo(info); diff --git a/ui-patch.h b/ui-patch.h
index 9f68212..1641cea 100644 --- a/ui-patch.h +++ b/ui-patch.h
@@ -1,6 +1,6 @@ #ifndef UI_PATCH_H #define UI_PATCH_H -extern void cgit_print_patch(char *hex); +extern void cgit_print_patch(char *hex, const char *prefix); #endif /* UI_PATCH_H */ diff --git a/ui-shared.c b/ui-shared.c
index 4fa506f..d5c4c10 100644 --- a/ui-shared.c +++ b/ui-shared.c
@@ -388,9 +388,9 @@ void cgit_diff_link(const char *name, const char *title, const char *class, } void cgit_patch_link(const char *name, const char *title, const char *class, - const char *head, const char *rev) + const char *head, const char *rev, const char *path) { - reporevlink("patch", name, title, class, head, rev, NULL); + reporevlink("patch", name, title, class, head, rev, path); } void cgit_stats_link(const char *name, const char *title, const char *class, diff --git a/ui-shared.h b/ui-shared.h
index 3df5464..c0e5c55 100644 --- a/ui-shared.h +++ b/ui-shared.h
@@ -32,7 +32,7 @@ extern void cgit_commit_link(char *name, const char *title, const char *rev, int toggle_ssdiff); extern void cgit_patch_link(const char *name, const char *title, const char *class, const char *head, - const char *rev); + const char *rev, const char *path); extern void cgit_refs_link(const char *name, const char *title, const char *class, const char *head, const char *rev, const char *path);