From: Felipe Contreras Date: Sat, 27 Apr 2013 20:10:07 +0000 (-0500) Subject: completion: remove __git_index_file_list_filter() X-Git-Tag: v1.8.4-rc0~242^2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/c29e317994d1077fe3ac9cdeae5a5b35ffaa3440?ds=inline;hp=--cc 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 Signed-off-by: Junio C Hamano --- c29e317994d1077fe3ac9cdeae5a5b35ffaa3440 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 }