harden git completion against an undef var

This commit is contained in:
Kurtis Rader 2017-07-04 17:34:52 -07:00
parent 4853ec0281
commit 83ecf84392

View file

@ -145,6 +145,9 @@ end
# but a command can be aliased multiple times) # but a command can be aliased multiple times)
git config -z --get-regexp 'alias\..*' | while read -lz alias command _ git config -z --get-regexp 'alias\..*' | while read -lz alias command _
# Git aliases can contain chars that variable names can't - escape them. # Git aliases can contain chars that variable names can't - escape them.
if test (count $command) -ne 1
printf (_ "Warning: alias '%s' has more than one command: '%s') $alias "$command" >&2
end
set alias (string replace 'alias.' '' -- $alias | string escape --style=var) set alias (string replace 'alias.' '' -- $alias | string escape --style=var)
set -g __fish_git_alias_$alias $command set -g __fish_git_alias_$alias $command
end end
@ -158,7 +161,8 @@ function __fish_git_using_command
# Check aliases. # Check aliases.
set -l varname __fish_git_alias_(string escape --style=var -- $cmd) set -l varname __fish_git_alias_(string escape --style=var -- $cmd)
contains -- "$$varname" $argv set -q $$varname
and contains -- $$varname $argv
and return 0 and return 0
return 1 return 1
end end