]> git.ipfire.org Git - thirdparty/git.git/commitdiff
completion: support case-insensitive config vars
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Sat, 26 May 2018 13:55:30 +0000 (15:55 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 29 May 2018 05:51:29 +0000 (14:51 +0900)
Config variables are case-insensitive but this case/esac construct is
case-sensitive by default. For bash v4, it'll be easy. For platforms
that are stuck with older versions, we need an external command, but
that is not that critical. And where this additional overhead matters
the most is Windows, but luckily Git for Windows ships with Bash v4.

Helped-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash

index e74d50a4b9b3f413c5eb5fdfa3f9699d59a83d4d..97776fb31af371fd92ae4471d6b5ec8dc417ccac 100644 (file)
@@ -1995,7 +1995,15 @@ __git_compute_config_vars ()
 
 _git_config ()
 {
-       case "$prev" in
+       local varname
+
+       if [ "${BASH_VERSINFO[0]:-0}" -ge 4 ]; then
+               varname="${prev,,}"
+       else
+               varname="$(echo "$prev" |tr A-Z a-z)"
+       fi
+
+       case "$varname" in
        branch.*.remote|branch.*.pushremote)
                __gitcomp_nl "$(__git_remotes)"
                return