[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