author | Lars Hjemli <hjemli@gmail.com> | 2007-10-01 09:46:38 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-10-01 09:46:38 (UTC) |
commit | 1a6025b7a515a23ab4c83f4a5da468e00e4f0a38 (patch) (unidiff) | |
tree | 897fb29bf0d48a6c472221d6a2a32188dfcf8df9 | |
parent | f527a57c8a55f5fd315e1bc1cb338f5f4a9b20ae (diff) | |
download | cgit-1a6025b7a515a23ab4c83f4a5da468e00e4f0a38.zip cgit-1a6025b7a515a23ab4c83f4a5da468e00e4f0a38.tar.gz cgit-1a6025b7a515a23ab4c83f4a5da468e00e4f0a38.tar.bz2 |
Add prefix parameter to cgit_print_diff()
This allows a diff to be restricted to the path prefix specified in the url.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 2 | ||||
-rw-r--r-- | ui-diff.c | 4 |
3 files changed, 4 insertions, 4 deletions
@@ -104,13 +104,13 @@ static void cgit_print_repo_page(struct cacheitem *item) | |||
104 | cgit_print_commit(cgit_query_sha1); | 104 | cgit_print_commit(cgit_query_sha1); |
105 | break; | 105 | break; |
106 | case CMD_TAG: | 106 | case CMD_TAG: |
107 | cgit_print_tag(cgit_query_sha1); | 107 | cgit_print_tag(cgit_query_sha1); |
108 | break; | 108 | break; |
109 | case CMD_DIFF: | 109 | case CMD_DIFF: |
110 | cgit_print_diff(cgit_query_sha1, cgit_query_sha2); | 110 | cgit_print_diff(cgit_query_sha1, cgit_query_sha2, cgit_query_path); |
111 | break; | 111 | break; |
112 | default: | 112 | default: |
113 | cgit_print_error("Invalid request"); | 113 | cgit_print_error("Invalid request"); |
114 | } | 114 | } |
115 | cgit_print_docend(); | 115 | cgit_print_docend(); |
116 | } | 116 | } |
@@ -235,13 +235,13 @@ extern void cgit_print_repolist(struct cacheitem *item); | |||
235 | extern void cgit_print_summary(); | 235 | extern void cgit_print_summary(); |
236 | extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, int pager); | 236 | extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, int pager); |
237 | extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); | 237 | extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); |
238 | extern void cgit_print_tree(const char *rev, char *path); | 238 | extern void cgit_print_tree(const char *rev, char *path); |
239 | extern void cgit_print_commit(char *hex); | 239 | extern void cgit_print_commit(char *hex); |
240 | extern void cgit_print_tag(char *revname); | 240 | extern void cgit_print_tag(char *revname); |
241 | extern void cgit_print_diff(const char *new_hex, const char *old_hex); | 241 | extern void cgit_print_diff(const char *new_hex, const char *old_hex, const char *prefix); |
242 | extern void cgit_print_snapshot(struct cacheitem *item, const char *head, | 242 | extern void cgit_print_snapshot(struct cacheitem *item, const char *head, |
243 | const char *hex, const char *prefix, | 243 | const char *hex, const char *prefix, |
244 | const char *filename, int snapshot); | 244 | const char *filename, int snapshot); |
245 | extern void cgit_print_snapshot_links(const char *repo, const char *head, | 245 | extern void cgit_print_snapshot_links(const char *repo, const char *head, |
246 | const char *hex, int snapshots); | 246 | const char *hex, int snapshots); |
247 | extern int cgit_parse_snapshots_mask(const char *str); | 247 | extern int cgit_parse_snapshots_mask(const char *str); |
@@ -86,13 +86,13 @@ static void filepair_cb(struct diff_filepair *pair) | |||
86 | return; | 86 | return; |
87 | } | 87 | } |
88 | if (cgit_diff_files(pair->one->sha1, pair->two->sha1, print_line)) | 88 | if (cgit_diff_files(pair->one->sha1, pair->two->sha1, print_line)) |
89 | cgit_print_error("Error running diff"); | 89 | cgit_print_error("Error running diff"); |
90 | } | 90 | } |
91 | 91 | ||
92 | void cgit_print_diff(const char *new_rev, const char *old_rev) | 92 | void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefix) |
93 | { | 93 | { |
94 | unsigned char sha1[20], sha2[20]; | 94 | unsigned char sha1[20], sha2[20]; |
95 | enum object_type type; | 95 | enum object_type type; |
96 | unsigned long size; | 96 | unsigned long size; |
97 | struct commit *commit, *commit2; | 97 | struct commit *commit, *commit2; |
98 | 98 | ||
@@ -130,10 +130,10 @@ void cgit_print_diff(const char *new_rev, const char *old_rev) | |||
130 | commit2 = lookup_commit_reference(sha2); | 130 | commit2 = lookup_commit_reference(sha2); |
131 | if (!commit2 || parse_commit(commit2)) | 131 | if (!commit2 || parse_commit(commit2)) |
132 | cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(sha2))); | 132 | cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(sha2))); |
133 | } | 133 | } |
134 | html("<table class='diff'>"); | 134 | html("<table class='diff'>"); |
135 | html("<tr><td>"); | 135 | html("<tr><td>"); |
136 | cgit_diff_tree(sha2, sha1, filepair_cb, NULL); | 136 | cgit_diff_tree(sha2, sha1, filepair_cb, prefix); |
137 | html("</td></tr>"); | 137 | html("</td></tr>"); |
138 | html("</table>"); | 138 | html("</table>"); |
139 | } | 139 | } |