 47d72a74a7
			
		
	
	47d72a74a7
	
	
	
		
			
			The `struct diff_flags` structure is essentially an array of flags, all of which have the same type. We can thus use `sizeof()` to iterate through all of the flags, which we do in `diff_flags_or()`. But while the statement returns an unsigned integer, we used a signed integer to iterate through the flags, which generates a warning. Fix this by using `size_t` for the index instead. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2021, Google LLC.
 | |
|  * Based on diffcore-order.c, which is Copyright (C) 2005, Junio C Hamano
 | |
|  */
 | |
| 
 | |
| #include "git-compat-util.h"
 | |
| #include "gettext.h"
 | |
| #include "diff.h"
 | |
| #include "diffcore.h"
 | |
| 
 | |
| void diffcore_rotate(struct diff_options *opt)
 | |
| {
 | |
| 	struct diff_queue_struct *q = &diff_queued_diff;
 | |
| 	struct diff_queue_struct outq = DIFF_QUEUE_INIT;
 | |
| 	int rotate_to, i;
 | |
| 
 | |
| 	if (!q->nr)
 | |
| 		return;
 | |
| 
 | |
| 	for (i = 0; i < q->nr; i++) {
 | |
| 		int cmp = strcmp(opt->rotate_to, q->queue[i]->two->path);
 | |
| 		if (!cmp)
 | |
| 			break; /* exact match */
 | |
| 		if (!opt->rotate_to_strict && cmp < 0)
 | |
| 			break; /* q->queue[i] is now past the target pathname */
 | |
| 	}
 | |
| 
 | |
| 	if (q->nr <= i) {
 | |
| 		/* we did not find the specified path */
 | |
| 		if (opt->rotate_to_strict)
 | |
| 			die(_("No such path '%s' in the diff"), opt->rotate_to);
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	rotate_to = i;
 | |
| 
 | |
| 	for (i = rotate_to; i < q->nr; i++)
 | |
| 		diff_q(&outq, q->queue[i]);
 | |
| 	for (i = 0; i < rotate_to; i++) {
 | |
| 		if (opt->skip_instead_of_rotate)
 | |
| 			diff_free_filepair(q->queue[i]);
 | |
| 		else
 | |
| 			diff_q(&outq, q->queue[i]);
 | |
| 	}
 | |
| 	free(q->queue);
 | |
| 	*q = outq;
 | |
| }
 |