mirror of
https://github.com/git/git.git
synced 2026-01-11 21:33:13 +09:00
completion: add helper to count path components
A follow-up commit will use this with for-each-ref to strip the right number of path components from refnames. Signed-off-by: David Mandelberg <david@mandelberg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
6a64ac7b01
commit
5637bdc352
@ -234,6 +234,17 @@ __git_dequote ()
|
||||
done
|
||||
}
|
||||
|
||||
# Prints the number of slash-separated components in a path.
|
||||
# 1: Path to count components of.
|
||||
__git_count_path_components ()
|
||||
{
|
||||
local path="$1"
|
||||
local relative="${path#/}"
|
||||
relative="${relative%/}"
|
||||
local slashes="/${relative//[^\/]}"
|
||||
echo "${#slashes}"
|
||||
}
|
||||
|
||||
# The following function is based on code from:
|
||||
#
|
||||
# bash_completion - programmable completion functions for bash 3.2+
|
||||
|
||||
@ -455,6 +455,32 @@ test_expect_success '__git_dequote - open double quote' '
|
||||
'
|
||||
|
||||
|
||||
test_expect_success '__git_count_path_components - no slashes' '
|
||||
echo 1 >expected &&
|
||||
__git_count_path_components a >"$actual" &&
|
||||
test_cmp expected "$actual"
|
||||
'
|
||||
|
||||
test_expect_success '__git_count_path_components - relative' '
|
||||
echo 3 >expected &&
|
||||
__git_count_path_components a/b/c >"$actual" &&
|
||||
test_cmp expected "$actual"
|
||||
|
||||
'
|
||||
|
||||
test_expect_success '__git_count_path_components - absolute' '
|
||||
echo 3 >expected &&
|
||||
__git_count_path_components /a/b/c >"$actual" &&
|
||||
test_cmp expected "$actual"
|
||||
'
|
||||
|
||||
test_expect_success '__git_count_path_components - trailing slash' '
|
||||
echo 3 >expected &&
|
||||
__git_count_path_components a/b/c/ >"$actual" &&
|
||||
test_cmp expected "$actual"
|
||||
'
|
||||
|
||||
|
||||
test_expect_success '__gitcomp_direct - puts everything into COMPREPLY as-is' '
|
||||
sed -e "s/Z$//g" >expected <<-EOF &&
|
||||
with-trailing-space Z
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user