diff options
Diffstat (limited to 'diff.c')
| -rw-r--r-- | diff.c | 23 | 
1 files changed, 13 insertions, 10 deletions
| @@ -574,6 +574,7 @@ static void emit_rewrite_lines(struct emit_callback *ecb,  	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 @@ int print_stat_summary(FILE *fp, int files, int insertions, int deletions)  	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 @@ void free_filespec(struct diff_filespec *spec)  }  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 @@ void diff_setup(struct diff_options *options)  	}  } -int diff_setup_done(struct diff_options *options) +void diff_setup_done(struct diff_options *options)  {  	int count = 0; @@ -3286,8 +3287,6 @@ int diff_setup_done(struct diff_options *options)  		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) @@ -4693,6 +4692,7 @@ static int is_submodule_ignored(const char *path, struct diff_options *options)  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; @@ -4724,9 +4724,9 @@ void diff_addremove(struct diff_options *options,  	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;  	} @@ -4739,6 +4739,7 @@ void diff_change(struct diff_options *options,  		 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,6 +4754,8 @@ void diff_change(struct diff_options *options,  		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;  	} @@ -4763,8 +4766,8 @@ void diff_change(struct diff_options *options,  	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; | 
