completion: avoid trailing space for --exec-path
authorJonathan Nieder <jrnieder@gmail.com>
Sun, 15 Apr 2012 19:44:19 +0000 (22:44 +0300)
committerJunio C Hamano <gitster@pobox.com>
Sun, 22 Apr 2012 05:39:07 +0000 (22:39 -0700)
"--exec-path" looks to the completion script like an unambiguous
successful completion, but it is wrong to emit a SP after it as if
declaring that we are done with completion; the user could be trying
to do

git --exec-path; # print name of helper directory

or

git --exec-path=/path/to/alternative/helper/dir <subcommand>

so the most helpful thing to do is to leave out the trailing space and
leave it to the operator to type an equal sign or carriage return
according to the situation.

[fc: added tests]

Cc: Andreas Schwab <schwab@linux-m68k.org>
Reported-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
t/t9902-completion.sh

index b837704a85e30c0ced828e288508d831a394d558..6486a09272ea3b88ed4c8f69f2f50ed5c6a0b0b2 100755 (executable)
@@ -2639,6 +2639,7 @@ _git ()
                        --bare
                        --version
                        --exec-path
+                       --exec-path=
                        --html-path
                        --info-path
                        --work-tree=
index 0c0cd4100ed1cfbfb106c1145975d5c33cc3e5d9..eb779d58a44f0e96c7b1ed37c64f73256a9a02db 100755 (executable)
@@ -179,6 +179,7 @@ test_expect_success 'double dash "git" itself' '
        --bare Z
        --version Z
        --exec-path Z
+       --exec-path=
        --html-path Z
        --info-path Z
        --work-tree=
@@ -207,7 +208,11 @@ test_expect_success 'double dash "git checkout"' '
 test_expect_success 'general options' '
        test_completion "git --ver" "--version " &&
        test_completion "git --hel" "--help " &&
-       test_completion "git --exe" "--exec-path " &&
+       sed -e "s/Z$//" >expected <<-\EOF &&
+       --exec-path Z
+       --exec-path=
+       EOF
+       test_completion "git --exe" &&
        test_completion "git --htm" "--html-path " &&
        test_completion "git --pag" "--paginate " &&
        test_completion "git --no-p" "--no-pager " &&