Skip to content

Commit

Permalink
completion: remove __git_index_file_list_filter()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Felipe Contreras authored and Junio C Hamano committed Apr 27, 2013
1 parent fbe4511 commit c29e317
Showing 1 changed file with 8 additions and 20 deletions.
28 changes: 8 additions & 20 deletions contrib/completion/git-completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
}

Expand Down

0 comments on commit c29e317

Please sign in to comment.