summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorLibravatar Felipe Contreras <felipe.contreras@gmail.com>2013-04-27 15:10:07 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2013-04-27 14:32:29 -0700
commitc29e317994d1077fe3ac9cdeae5a5b35ffaa3440 (patch)
tree3c79d8960f003623bb7a691056f449f9cf503b97 /contrib
parentcompletion: add space after completed filename (diff)
downloadtgif-c29e317994d1077fe3ac9cdeae5a5b35ffaa3440.tar.xz
completion: remove __git_index_file_list_filter()
Refactor the code into the only caller; __git_index_files(). Also, Somehow messing up with the 'path' variable messes up the 'PATH' variable. So let's not do that. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib')
-rw-r--r--contrib/completion/git-completion.bash28
1 files changed, 8 insertions, 20 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 20c971875d..edb7428266 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -259,23 +259,6 @@ __gitcomp_file ()
compgen -f /non-existing-dir/ > /dev/null
}
-# Process path list returned by "ls-files" and "diff-index --name-only"
-# commands, in order to list only file names relative to a specified
-# directory, and append a slash to directory names.
-__git_index_file_list_filter ()
-{
- local path
-
- while read -r path; do
- case "$path" in
- ?*/*)
- echo "${path%%/*}" ;;
- *)
- echo "$path" ;;
- esac
- done
-}
-
# Execute 'git ls-files', unless the --committable option is specified, in
# which case it runs 'git diff-index' to find out the files that can be
# committed. It return paths relative to the directory specified in the first
@@ -303,11 +286,16 @@ __git_ls_files_helper ()
# slash.
__git_index_files ()
{
- local dir="$(__gitdir)" root="${2-.}"
+ local dir="$(__gitdir)" root="${2-.}" file
if [ -d "$dir" ]; then
- __git_ls_files_helper "$root" "$1" | __git_index_file_list_filter |
- sort | uniq
+ __git_ls_files_helper "$root" "$1" |
+ while read -r file; do
+ case "$file" in
+ ?*/*) echo "${file%%/*}" ;;
+ *) echo "$file" ;;
+ esac
+ done | sort | uniq
fi
}