From: Junio C Hamano Date: Mon, 27 Aug 2012 18:54:46 +0000 (-0700) Subject: Merge branch 'ab/diff-write-incomplete-line' X-Git-Tag: v1.8.0-rc0~132 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e6daf0ac2209eb5c69f28c008715ad1a3b79c057?ds=inline;hp=-c Merge branch 'ab/diff-write-incomplete-line' The output from "git diff -B" for a file that ends with an incomplete line did not put "\ No newline..." on a line of its own. * ab/diff-write-incomplete-line: Fix '\ No newline...' annotation in rewrite diffs --- e6daf0ac2209eb5c69f28c008715ad1a3b79c057 diff --combined diff.c index bd37d9b2c8,4c4dc673f8..e6846ca750 --- 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)); } @@@ -1397,7 -1398,7 +1398,7 @@@ int print_stat_summary(FILE *fp, int fi if (!files) { assert(insertions == 0 && deletions == 0); - return fputs(_(" 0 files changed\n"), fp); + return fprintf(fp, "%s\n", _(" 0 files changed")); } strbuf_addf(&sb, @@@ -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;