Merge branch 'jc/maint-combine-diff-pre-context' into maint
* jc/maint-combine-diff-pre-context: diff -c/--cc: do not include uninteresting deletion before leading contextmaint
						commit
						4ace4fc584
					
				|  | @ -84,6 +84,7 @@ struct sline { | ||||||
| 	/* bit 0 up to (N-1) are on if the parent has this line (i.e. | 	/* bit 0 up to (N-1) are on if the parent has this line (i.e. | ||||||
| 	 * we did not change it). | 	 * we did not change it). | ||||||
| 	 * bit N is used for "interesting" lines, including context. | 	 * bit N is used for "interesting" lines, including context. | ||||||
|  | 	 * bit (N+1) is used for "do not show deletion before this". | ||||||
| 	 */ | 	 */ | ||||||
| 	unsigned long flag; | 	unsigned long flag; | ||||||
| 	unsigned long *p_lno; | 	unsigned long *p_lno; | ||||||
|  | @ -308,6 +309,7 @@ static int give_context(struct sline *sline, unsigned long cnt, int num_parent) | ||||||
| { | { | ||||||
| 	unsigned long all_mask = (1UL<<num_parent) - 1; | 	unsigned long all_mask = (1UL<<num_parent) - 1; | ||||||
| 	unsigned long mark = (1UL<<num_parent); | 	unsigned long mark = (1UL<<num_parent); | ||||||
|  | 	unsigned long no_pre_delete = (2UL<<num_parent); | ||||||
| 	unsigned long i; | 	unsigned long i; | ||||||
|  |  | ||||||
| 	/* Two groups of interesting lines may have a short gap of | 	/* Two groups of interesting lines may have a short gap of | ||||||
|  | @ -329,7 +331,7 @@ static int give_context(struct sline *sline, unsigned long cnt, int num_parent) | ||||||
|  |  | ||||||
| 		/* Paint a few lines before the first interesting line. */ | 		/* Paint a few lines before the first interesting line. */ | ||||||
| 		while (j < i) | 		while (j < i) | ||||||
| 			sline[j++].flag |= mark; | 			sline[j++].flag |= mark | no_pre_delete; | ||||||
|  |  | ||||||
| 	again: | 	again: | ||||||
| 		/* we know up to i is to be included.  where does the | 		/* we know up to i is to be included.  where does the | ||||||
|  | @ -502,6 +504,7 @@ static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent, | ||||||
| 		       int use_color) | 		       int use_color) | ||||||
| { | { | ||||||
| 	unsigned long mark = (1UL<<num_parent); | 	unsigned long mark = (1UL<<num_parent); | ||||||
|  | 	unsigned long no_pre_delete = (2UL<<num_parent); | ||||||
| 	int i; | 	int i; | ||||||
| 	unsigned long lno = 0; | 	unsigned long lno = 0; | ||||||
| 	const char *c_frag = diff_get_color(use_color, DIFF_FRAGINFO); | 	const char *c_frag = diff_get_color(use_color, DIFF_FRAGINFO); | ||||||
|  | @ -581,7 +584,7 @@ static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent, | ||||||
| 			int j; | 			int j; | ||||||
| 			unsigned long p_mask; | 			unsigned long p_mask; | ||||||
| 			sl = &sline[lno++]; | 			sl = &sline[lno++]; | ||||||
| 			ll = sl->lost_head; | 			ll = (sl->flag & no_pre_delete) ? NULL : sl->lost_head; | ||||||
| 			while (ll) { | 			while (ll) { | ||||||
| 				fputs(c_old, stdout); | 				fputs(c_old, stdout); | ||||||
| 				for (j = 0; j < num_parent; j++) { | 				for (j = 0; j < num_parent; j++) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano