diff options
author | Linus Torvalds <torvalds@osdl.org> | 2005-10-18 00:16:45 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-10-18 00:16:45 -0700 |
commit | ea51d416c02bb26e9d7600f87b27deb42752e6b5 (patch) | |
tree | 2f2247d6468dbc88e7ac5c691a6ca5347b68ff36 | |
parent | 7a3dd472ad2c69b7450a59eb2a35efb0698993d0 (diff) | |
download | git-ea51d416c02bb26e9d7600f87b27deb42752e6b5.tar.gz git-ea51d416c02bb26e9d7600f87b27deb42752e6b5.tar.xz |
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>
-rw-r--r-- | diff-files.c | 5 | ||||
-rwxr-xr-x | git-diff.sh | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/diff-files.c b/diff-files.c index 8a8f9b6dc..17899390b 100644 --- a/diff-files.c +++ b/diff-files.c @@ -41,6 +41,11 @@ int main(int argc, const char **argv) git_config(git_default_config); diff_setup(&diff_options); while (1 < argc && argv[1][0] == '-') { + if (!strcmp(argv[1], "--")) { + argv++; + argc--; + break; + } if (!strcmp(argv[1], "-q")) silent = 1; else if (!strcmp(argv[1], "-r")) diff --git a/git-diff.sh b/git-diff.sh index 84a152af2..b3ec84be6 100755 --- a/git-diff.sh +++ b/git-diff.sh @@ -28,16 +28,16 @@ case "$rev" in ?*' '^?*) begin=$(expr "$rev" : '.*^.\([0-9a-f]*\).*') && 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 $*" |