[Bash-completion-commits] [SCM] bash-completion branch, mount-fix, updated. 4375c4b94ea7bdd370cd771aeb3483f36a42bd9f
Crestez Dan Leonard
cdleonard at gmail.com
Tue Feb 9 13:45:08 UTC 2010
The following commit has been merged in the mount-fix branch:
commit 1c4b461882c94febb39a550e0fe3065208139757
Author: Crestez Dan Leonard <cdleonard at gmail.com>
Date: Sun Feb 7 01:05:51 2010 +0200
(mount) Fix leaking fs_* vars to the environment. Explicitly save/restore IFS to be posix conformant.
diff --git a/contrib/mount b/contrib/mount
index 41afb07..bfa2a27 100644
--- a/contrib/mount
+++ b/contrib/mount
@@ -29,7 +29,9 @@ _reply_compgen_array()
ecur="${ecur/#$\'/\$\'}"
# Actually generate completions.
+ local oldifs="$IFS"
IFS=$'\n' eval 'COMPREPLY=(`compgen -W "$wlist" -- "${ecur}"`)'
+ IFS="$oldifs"
# Strip starting $' in reply if present in cur.
# This is necesarry because readline interprets everything after ' as a
@@ -48,10 +50,14 @@ _linux_fstab()
COMPREPLY=()
# Read and unescape values into COMPREPLY
+ local fs_spec fs_file fs_other
while read -r fs_spec fs_file fs_other; do
if [[ $fs_spec = [#]* ]]; then continue; fi
- [[ $fs_spec = */* ]] && { IFS=$'\0' eval "COMPREPLY+=( $'$fs_spec' )"; }
- [[ $fs_file = */* ]] && { IFS=$'\0' eval "COMPREPLY+=( $'$fs_file' )"; }
+ local oldifs="$IFS"
+ IFS=$'\0'
+ [[ $fs_spec = */* ]] && eval "COMPREPLY+=( $'$fs_spec' )";
+ [[ $fs_file = */* ]] && eval "COMPREPLY+=( $'$fs_file' )";
+ IFS="$oldifs"
done
_reply_compgen_array
--
bash-completion
More information about the Bash-completion-commits
mailing list