Teach "git diff" to handle filenames starting with '-'
It adds "--" to the git-diff.sh scripts, to keep any filenames that start with a "-" from being confused with an option. But in order to do that, it needs to teach git-diff-files to honor "--". Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>maint
							parent
							
								
									7a3dd472ad
								
							
						
					
					
						commit
						ea51d416c0
					
				|  | @ -41,6 +41,11 @@ int main(int argc, const char **argv) | ||||||
| 	git_config(git_default_config); | 	git_config(git_default_config); | ||||||
| 	diff_setup(&diff_options); | 	diff_setup(&diff_options); | ||||||
| 	while (1 < argc && argv[1][0] == '-') { | 	while (1 < argc && argv[1][0] == '-') { | ||||||
|  | 		if (!strcmp(argv[1], "--")) { | ||||||
|  | 			argv++; | ||||||
|  | 			argc--; | ||||||
|  | 			break; | ||||||
|  | 		} | ||||||
| 		if (!strcmp(argv[1], "-q")) | 		if (!strcmp(argv[1], "-q")) | ||||||
| 			silent = 1; | 			silent = 1; | ||||||
| 		else if (!strcmp(argv[1], "-r")) | 		else if (!strcmp(argv[1], "-r")) | ||||||
|  |  | ||||||
|  | @ -28,16 +28,16 @@ case "$rev" in | ||||||
| ?*' '^?*) | ?*' '^?*) | ||||||
| 	begin=$(expr "$rev" : '.*^.\([0-9a-f]*\).*') && | 	begin=$(expr "$rev" : '.*^.\([0-9a-f]*\).*') && | ||||||
| 	end=$(expr "$rev" : '.\([0-9a-f]*\). .*') || exit | 	end=$(expr "$rev" : '.\([0-9a-f]*\). .*') || exit | ||||||
| 	cmd="git-diff-tree $flags $begin $end $files" | 	cmd="git-diff-tree $flags $begin $end -- $files" | ||||||
| 	;; | 	;; | ||||||
| ?*' '?*) | ?*' '?*) | ||||||
| 	cmd="git-diff-tree $flags $rev $files" | 	cmd="git-diff-tree $flags $rev -- $files" | ||||||
| 	;; | 	;; | ||||||
| ?*' ') | ?*' ') | ||||||
| 	cmd="git-diff-index $flags $rev $files" | 	cmd="git-diff-index $flags $rev -- $files" | ||||||
| 	;; | 	;; | ||||||
| '') | '') | ||||||
| 	cmd="git-diff-files $flags $files" | 	cmd="git-diff-files $flags -- $files" | ||||||
| 	;; | 	;; | ||||||
| *) | *) | ||||||
| 	die "I don't understand $*" | 	die "I don't understand $*" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Linus Torvalds
						Linus Torvalds