summaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-02-14 03:18:16 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-02-14 03:18:16 (GMT)
commit3eee9c6dbebcf6341ad202f7dd4d416ef3fcba5e (patch)
tree87918d8cc2eb5a6cff17b807a64798a0bf6ed848 /diff.c
parent4a164d48df6bb1b4a771741c63d4437fd2dca0bb (diff)
parent1a9eb3b9d50367bee8fe85022684d812816fe531 (diff)
downloadgit-3eee9c6dbebcf6341ad202f7dd4d416ef3fcba5e.zip
git-3eee9c6dbebcf6341ad202f7dd4d416ef3fcba5e.tar.gz
git-3eee9c6dbebcf6341ad202f7dd4d416ef3fcba5e.tar.bz2
Merge branch 'jc/diff-apply-patch'
* jc/diff-apply-patch: git-diff/git-apply: make diff output a bit friendlier to GNU patch (part 2)
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/diff.c b/diff.c
index 13b9b6c..165d252 100644
--- a/diff.c
+++ b/diff.c
@@ -207,11 +207,18 @@ static void emit_rewrite_diff(const char *name_a,
struct diff_filespec *two)
{
int lc_a, lc_b;
+ const char *name_a_tab, *name_b_tab;
+
+ name_a_tab = strchr(name_a, ' ') ? "\t" : "";
+ name_b_tab = strchr(name_b, ' ') ? "\t" : "";
+
diff_populate_filespec(one, 0);
diff_populate_filespec(two, 0);
lc_a = count_lines(one->data, one->size);
lc_b = count_lines(two->data, two->size);
- printf("--- a/%s\n+++ b/%s\n@@ -", name_a, name_b);
+ printf("--- a/%s%s\n+++ b/%s%s\n@@ -",
+ name_a, name_a_tab,
+ name_b, name_b_tab);
print_line_count(lc_a);
printf(" +");
print_line_count(lc_b);
@@ -477,8 +484,15 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
const char *reset = diff_get_color(ecbdata->color_diff, DIFF_RESET);
if (ecbdata->label_path[0]) {
- printf("%s--- %s%s\n", set, ecbdata->label_path[0], reset);
- printf("%s+++ %s%s\n", set, ecbdata->label_path[1], reset);
+ const char *name_a_tab, *name_b_tab;
+
+ name_a_tab = strchr(ecbdata->label_path[0], ' ') ? "\t" : "";
+ name_b_tab = strchr(ecbdata->label_path[1], ' ') ? "\t" : "";
+
+ printf("%s--- %s%s%s\n",
+ set, ecbdata->label_path[0], reset, name_a_tab);
+ printf("%s+++ %s%s%s\n",
+ set, ecbdata->label_path[1], reset, name_b_tab);
ecbdata->label_path[0] = ecbdata->label_path[1] = NULL;
}