git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 9/9] completion: remove __git_index_file_list_filter()

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 27, 2013, 20:10 UTC
Message-ID
<1367093407-8898-10-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1367093407-8898-1-git-send-email-felipe.contreras@gmail.com>
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>
---
 contrib/completion/git-completion.bash | 28 ++++++++--------------------
 1 file changed, 8 insertions(+), 20 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 20c9718..edb7428 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
 }
 
-- 
1.8.2.1.1031.g2ee5873
Previous: Felipe ContrerasNext: Eric Sunshine
Message 12 of 15 in “completion: general cleanups”
  1. 0/9 completion: general cleanupsFelipe Contreras, Apr 27, 2013
  2. 1/9 completion: add file completion testsFelipe Contreras, Apr 27, 2013
  3. Junio C HamanoApr 27, 2013
  4. 2/9 completion: document tilde expansion failure in testsFelipe Contreras, Apr 27, 2013
  5. 3/9 completion; remove unuseful commentsFelipe Contreras, Apr 27, 2013
  6. 4/9 completion: use __gitcompadd for __gitcomp_fileFelipe Contreras, Apr 27, 2013
  7. 5/9 completion: refactor diff_index wrappersFelipe Contreras, Apr 27, 2013
  8. Junio C HamanoApr 27, 2013
  9. 6/9 completion: refactor __git_complete_index_file()Felipe Contreras, Apr 27, 2013
  10. 7/9 completion: add hack to enable file mode in bash < 4Felipe Contreras, Apr 27, 2013
  11. 8/9 completion: add space after completed filenameFelipe Contreras, Apr 27, 2013
  12. 9/9 completion: remove __git_index_file_list_filter()Felipe Contreras, Apr 27, 2013
  13. Eric SunshineApr 28, 2013
  14. Felipe ContrerasApr 28, 2013
  15. Junio C HamanoApr 27, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.