diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2000-07-26 09:16:13 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2000-07-26 09:16:13 +0000 |
commit | f303f2ea63ce70f63355349bc0130ddb04a251f8 (patch) | |
tree | dca8a07660778e388919abad3ba54a6dffd4d3e1 /Completion/Core/_path_files | |
parent | 04aaf1cd7f9fb791a3f305c2d8f6e7f995b1db6a (diff) | |
download | zsh-f303f2ea63ce70f63355349bc0130ddb04a251f8.tar.gz zsh-f303f2ea63ce70f63355349bc0130ddb04a251f8.tar.xz zsh-f303f2ea63ce70f63355349bc0130ddb04a251f8.zip |
Belatedly fold in 12162, to replace command subst with eval.
Diffstat (limited to 'Completion/Core/_path_files')
-rw-r--r-- | Completion/Core/_path_files | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Completion/Core/_path_files b/Completion/Core/_path_files index bf6049f8f..1e8059e4b 100644 --- a/Completion/Core/_path_files +++ b/Completion/Core/_path_files @@ -249,9 +249,10 @@ elif [[ "$pre" = *\$*/* && "$compstate[quote]" != \" ]]; then # after the first slash after the parameter expansion. # This fails for things like `f/$foo/b/<TAB>' where the first `f' is # meant as a partial path. + linepath="${(M)pre##*\$[^/]##/}" - realpath=$(print -r ${(e)~linepath}) 2>/dev/null - [[ -z "$realpath" || "$realpath" = "$linepath" ]] && return 1 + eval 'realpath=${(e)~linepath}' 2>/dev/null + [[ -z "$realpath" || "$realpath" = "$linepath" ]] && return 1 pre="${pre#${linepath}}" i="${#linepath//[^\\/]}" orig="${orig[1,(in:i:)/][1,-2]}" @@ -323,7 +324,7 @@ for prepath in "$prepaths[@]"; do else compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher" '' fake "$pats[@]" fi - eval 'tmp1=( $~tmp1 )' 2>/dev/null + tmp1=( $~tmp1 ) if [[ -n "$PREFIX$SUFFIX" ]]; then # See which of them match what's on the line. |