mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
completion: simplify query for config variables
To get the name of all config variables in a given section we perform a 'git config --get-regex' query for all config variables containing the name of that section, and then filter its output through a case statement to throw away those that though contain but don't start with the given section. Modify the regex to match only at the beginning, so the case statement becomes unnecessary and we can get rid of it. Add a test to check that a match in the middle doesn't fool us. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e8f9e42829
commit
12bdc880c7
|
@ -744,13 +744,9 @@ __git_compute_porcelain_commands ()
|
|||
__git_get_config_variables ()
|
||||
{
|
||||
local section="$1" i IFS=$'\n'
|
||||
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "$section\..*" 2>/dev/null); do
|
||||
case "$i" in
|
||||
$section.*)
|
||||
i="${i#$section.}"
|
||||
echo "${i/ */}"
|
||||
;;
|
||||
esac
|
||||
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "^$section\..*" 2>/dev/null); do
|
||||
i="${i#$section.}"
|
||||
echo "${i/ */}"
|
||||
done
|
||||
}
|
||||
|
||||
|
|
|
@ -370,6 +370,18 @@ test_expect_success '__git_remotes - list remotes from $GIT_DIR/remotes and from
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success '__git_get_config_variables' '
|
||||
cat >expect <<-EOF &&
|
||||
name-1
|
||||
name-2
|
||||
EOF
|
||||
test_config interesting.name-1 good &&
|
||||
test_config interesting.name-2 good &&
|
||||
test_config subsection.interesting.name-3 bad &&
|
||||
__git_get_config_variables interesting >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success '__git_pretty_aliases' '
|
||||
cat >expect <<-EOF &&
|
||||
author
|
||||
|
|
Loading…
Reference in a new issue