From: Junio C Hamano Date: Tue, 11 Sep 2012 18:08:30 +0000 (-0700) Subject: Merge branch 'ab/diff-write-incomplete-line' into maint-1.7.11 X-Git-Tag: v1.7.11.6~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/d9b983fc268bd749c947bcf88b977dc24782353b?ds=inline;hp=-c Merge branch 'ab/diff-write-incomplete-line' into maint-1.7.11 * ab/diff-write-incomplete-line: Fix '\ No newline...' annotation in rewrite diffs --- d9b983fc268bd749c947bcf88b977dc24782353b diff --combined diff.c index 37bf002700,4c4dc673f8..f1b044780f --- a/diff.c +++ b/diff.c @@@ -574,6 -574,7 +574,7 @@@ static void emit_rewrite_lines(struct e if (!endp) { const char *plain = diff_get_color(ecb->color_diff, DIFF_PLAIN); + putc('\n', ecb->opt->file); emit_line_0(ecb->opt, plain, reset, '\\', nneof, strlen(nneof)); } @@@ -2541,12 -2542,12 +2542,12 @@@ void free_filespec(struct diff_filespe } void fill_filespec(struct diff_filespec *spec, const unsigned char *sha1, - unsigned short mode) + int sha1_valid, unsigned short mode) { if (mode) { spec->mode = canon_mode(mode); hashcpy(spec->sha1, sha1); - spec->sha1_valid = !is_null_sha1(sha1); + spec->sha1_valid = sha1_valid; } } @@@ -3187,7 -3188,7 +3188,7 @@@ void diff_setup(struct diff_options *op } } -int diff_setup_done(struct diff_options *options) +void diff_setup_done(struct diff_options *options) { int count = 0; @@@ -3286,6 -3287,8 +3287,6 @@@ options->output_format = DIFF_FORMAT_NO_OUTPUT; DIFF_OPT_SET(options, EXIT_WITH_STATUS); } - - return 0; } static int opt_arg(const char *arg, int arg_short, const char *arg_long, int *val) @@@ -4691,7 -4694,6 +4692,7 @@@ static int is_submodule_ignored(const c void diff_addremove(struct diff_options *options, int addremove, unsigned mode, const unsigned char *sha1, + int sha1_valid, const char *concatpath, unsigned dirty_submodule) { struct diff_filespec *one, *two; @@@ -4723,9 -4725,9 +4724,9 @@@ two = alloc_filespec(concatpath); if (addremove != '+') - fill_filespec(one, sha1, mode); + fill_filespec(one, sha1, sha1_valid, mode); if (addremove != '-') { - fill_filespec(two, sha1, mode); + fill_filespec(two, sha1, sha1_valid, mode); two->dirty_submodule = dirty_submodule; } @@@ -4738,7 -4740,6 +4739,7 @@@ void diff_change(struct diff_options *o unsigned old_mode, unsigned new_mode, const unsigned char *old_sha1, const unsigned char *new_sha1, + int old_sha1_valid, int new_sha1_valid, const char *concatpath, unsigned old_dirty_submodule, unsigned new_dirty_submodule) { @@@ -4753,8 -4754,6 +4754,8 @@@ const unsigned char *tmp_c; tmp = old_mode; old_mode = new_mode; new_mode = tmp; tmp_c = old_sha1; old_sha1 = new_sha1; new_sha1 = tmp_c; + tmp = old_sha1_valid; old_sha1_valid = new_sha1_valid; + new_sha1_valid = tmp; tmp = old_dirty_submodule; old_dirty_submodule = new_dirty_submodule; new_dirty_submodule = tmp; } @@@ -4765,8 -4764,8 +4766,8 @@@ one = alloc_filespec(concatpath); two = alloc_filespec(concatpath); - fill_filespec(one, old_sha1, old_mode); - fill_filespec(two, new_sha1, new_mode); + fill_filespec(one, old_sha1, old_sha1_valid, old_mode); + fill_filespec(two, new_sha1, new_sha1_valid, new_mode); one->dirty_submodule = old_dirty_submodule; two->dirty_submodule = new_dirty_submodule;