add -i (built-in): do show an error message for incorrect inputs
There is a neat feature in `git add -i` where it allows users to select items via unique prefixes. In the built-in version of `git add -i`, we specifically sort the items (unless they are already sorted) and then perform a binary search to figure out whether the input constitutes a unique prefix. Unfortunately, by mistake this code misidentifies matches even if the input string is not actually a prefix of any item. For example, in the initial menu, where there is a `status` and an `update` command, the input `tadaa` was mistaken as a prefix of `update`. Let's fix this by looking a bit closer whether the input is actually a prefix of the item at the found insert index. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
		
				
					committed by
					
						
						Junio C Hamano
					
				
			
			
				
	
			
			
			
						parent
						
							898f80736c
						
					
				
				
					commit
					d34e4502fa
				
			@ -194,7 +194,8 @@ static ssize_t find_unique(const char *string, struct prefix_item_list *list)
 | 
			
		||||
	else if (index + 1 < list->sorted.nr &&
 | 
			
		||||
		 starts_with(list->sorted.items[index + 1].string, string))
 | 
			
		||||
		return -1;
 | 
			
		||||
	else if (index < list->sorted.nr)
 | 
			
		||||
	else if (index < list->sorted.nr &&
 | 
			
		||||
		 starts_with(list->sorted.items[index].string, string))
 | 
			
		||||
		item = list->sorted.items[index].util;
 | 
			
		||||
	else
 | 
			
		||||
		return -1;
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user