(mount) Fix leaking fs_* vars to the environment. Explicitly save/restore IFS to be posix conformant.
This commit is contained in:
parent
b493869b8d
commit
1c4b461882
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user