completion: simplify prefix path component handling during path completion
authorSZEDER Gábor <szeder.dev@gmail.com>
Mon, 16 Apr 2018 22:41:07 +0000 (00:41 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Apr 2018 03:49:36 +0000 (12:49 +0900)
Once upon a time 'git -C "" cmd' errored out with "Cannot change to
'': No such file or directory", therefore the completion script took
extra steps to run 'git -C "." cmd' instead; see fca416a41e
(completion: use "git -C $there" instead of (cd $there && git ...),
2014-10-09).

Those extra steps are not needed since 6a536e2076 (git: treat "git -C
'<path>'" as a no-op when <path> is empty, 2015-03-06), so remove
them.

While at it, also simplify how the trailing '/' is appended to the
variable holding the prefix path components.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
index a87a8b2a7b931e0d757906874abd84611d403da0..57fc7417f9bfd30710de5d84ca0ef461663b98c4 100644 (file)
@@ -387,7 +387,7 @@ __git_ls_files_helper ()
 #    slash.
 __git_index_files ()
 {
-       local root="${2-.}" file
+       local root="$2" file
 
        __git_ls_files_helper "$root" "$1" |
        while read -r file; do
@@ -408,13 +408,12 @@ __git_complete_index_file ()
 
        case "$cur_" in
        ?*/*)
-               pfx="${cur_%/*}"
+               pfx="${cur_%/*}/"
                cur_="${cur_##*/}"
-               pfx="${pfx}/"
                ;;
        esac
 
-       __gitcomp_file "$(__git_index_files "$1" ${pfx:+"$pfx"})" "$pfx" "$cur_"
+       __gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_"
 }
 
 # Lists branches from the local repository.