[Bash-completion-commits] ./current r1130: refactored _filedir using quote_readline()

David Paleino d.paleino at gmail.com
Mon Jun 23 09:13:08 UTC 2008


------------------------------------------------------------
revno: 1130
committer: David Paleino <d.paleino at gmail.com>
branch nick: current
timestamp: Mon 2008-06-23 11:13:08 +0200
message:
  refactored _filedir using quote_readline()
modified:
  bash_completion
  debian/changelog
-------------- next part --------------
=== modified file 'bash_completion'
--- a/bash_completion	2008-06-23 09:09:32 +0000
+++ b/bash_completion	2008-06-23 09:13:08 +0000
@@ -257,23 +257,23 @@
 #
 _filedir()
 {
-	local IFS=$'\t\n' xspec #glob
+	local IFS=$'\t\n' xspec
 
 	_expand || return 0
 
-	#glob=$(set +o|grep noglob) # save glob setting.
-	#set -f		 # disable pathname expansion (globbing)
-
-	if [ "${1:-}" = -d ]; then
-		COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -d -- $cur ) )
-		#eval "$glob"    # restore glob setting.
-		return 0
+	local toks=( ) tmp
+	while read -r tmp; do
+		[[ -n $tmp ]] && toks[${#toks[@]}]=$tmp
+	done < <( compgen -d -- "$(quote_readline "$cur")" )
+	
+	if [[ "$1" != -d ]]; then
+		xspec=${1:+"!*.$1"}
+		while read -r tmp; do
+			[[ -n $tmp ]] && toks[${#toks[@]}]=$tmp
+		done < <( compgen -f -X "$xspec" -- "$(quote_readline "$cur")" )
 	fi
 
-	xspec=${1:+"!*.$1"}	# set only if glob passed in as $1
-	COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -f -X "$xspec" -- "$cur" ) \
-		    $( compgen -d -- "$cur" ) )
-	#eval "$glob"    # restore glob setting.
+	COMPREPLY=( "${COMPREPLY[@]}" "${toks[@]}" )
 }
 
 # This function completes on signal names

=== modified file 'debian/changelog'
--- a/debian/changelog	2008-06-23 09:09:32 +0000
+++ b/debian/changelog	2008-06-23 09:13:08 +0000
@@ -3,8 +3,9 @@
   * Merged Ubuntu changes:
     - added quote(), quote_readline(), dequote() helper functions.
     - fixed _get_cword()
+    - refactored _filedir using quote_readline()
 
- -- David Paleino <d.paleino at gmail.com>  Mon, 23 Jun 2008 11:09:09 +0200
+ -- David Paleino <d.paleino at gmail.com>  Mon, 23 Jun 2008 11:12:28 +0200
 
 bash-completion (20080617.3) unstable; urgency=low
 



More information about the Bash-completion-commits mailing list