summaryrefslogtreecommitdiff
path: root/Completion/Core
diff options
context:
space:
mode:
authorBart Schaefer <barts@users.sourceforge.net>2000-07-02 17:21:54 +0000
committerBart Schaefer <barts@users.sourceforge.net>2000-07-02 17:21:54 +0000
commit4ed8c26c50dea84a01903e6d80b68701d9c4f3c0 (patch)
treec35b85c5cf130f31c96cb8d33191ddbe5f696ade /Completion/Core
parent0f398e9d2fd4f653cf24456bf4fbb4ce277f98e7 (diff)
downloadzsh-4ed8c26c50dea84a01903e6d80b68701d9c4f3c0.tar.gz
zsh-4ed8c26c50dea84a01903e6d80b68701d9c4f3c0.zip
12133: Protect completion system from stray error output and assorted fatal
errors when expanding strings taken from the command line.
Diffstat (limited to 'Completion/Core')
-rw-r--r--Completion/Core/_expand4
-rw-r--r--Completion/Core/_path_files2
2 files changed, 3 insertions, 3 deletions
diff --git a/Completion/Core/_expand b/Completion/Core/_expand
index 77d9c8794..5ac196428 100644
--- a/Completion/Core/_expand
+++ b/Completion/Core/_expand
@@ -63,7 +63,7 @@ if [[ "$force" = *s* ]] ||
eval exp\=\( ${${(q)exp}:gs/\\{/\{/:gs/\\}/\}/} \)
exp=( ${${(e)exp//\\[
]/ }//(#b)([
-])/\\$match[1]} )
+])/\\$match[1]} ) 2>/dev/null
else
exp=( ${exp:s/\\\$/\$} )
fi
@@ -77,7 +77,7 @@ subd=("$exp[@]")
# Now try globbing.
[[ "$force" = *g* ]] || zstyle -T ":completion:${curcontext}:" glob &&
- exp=( ${~exp} )
+ eval 'exp=( ${~exp} )' 2>/dev/null
# If we don't have any expansions or only one and that is the same
# as the original string, we let other completers run.
diff --git a/Completion/Core/_path_files b/Completion/Core/_path_files
index 250f6c750..df7f50d8a 100644
--- a/Completion/Core/_path_files
+++ b/Completion/Core/_path_files
@@ -322,7 +322,7 @@ for prepath in "$prepaths[@]"; do
else
compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" '' fake "$pats[@]"
fi
- tmp1=( $~tmp1 )
+ eval 'tmp1=( $~tmp1 )' 2>/dev/null
if [[ -n "$PREFIX$SUFFIX" ]]; then
# See which of them match what's on the line.