]> git.ipfire.org Git - thirdparty/git.git/commitdiff
completion: handle unstuck form of base git options
authorJohn Keeping <john@keeping.me.uk>
Sat, 22 Jun 2013 11:25:17 +0000 (12:25 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 30 Jun 2013 22:58:25 +0000 (15:58 -0700)
git-completion.bash's parsing of the command name relies on everything
preceding it starting with '-' unless it is the "-c" option.  This
allows users to use the stuck form of "--work-tree=<path>" and
"--namespace=<path>" but not the unstuck forms "--work-tree <path>" and
"--namespace <path>".  Fix this.

Similarly, the completion only handles the stuck form "--git-dir=<path>"
and not "--git-dir <path>", so fix this as well.

Signed-off-by: John Keeping <john@keeping.me.uk>
Acked-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash

index 6c3bafeea569601c4b55de165eb7f56ac3be1d31..8fbf94103cf458cba18b239a11abecec0239ff17 100644 (file)
@@ -2492,9 +2492,10 @@ __git_main ()
                i="${words[c]}"
                case "$i" in
                --git-dir=*) __git_dir="${i#--git-dir=}" ;;
+               --git-dir)   ((c++)) ; __git_dir="${words[c]}" ;;
                --bare)      __git_dir="." ;;
                --help) command="help"; break ;;
-               -c) c=$((++c)) ;;
+               -c|--work-tree|--namespace) ((c++)) ;;
                -*) ;;
                *) command="$i"; break ;;
                esac