[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