mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-01 05:16:05 +01:00
40024: Update _path_files since quoting requirements changed in 39412
This commit is contained in:
parent
e8699613bc
commit
989f5e590c
2 changed files with 8 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2016-12-01 Mikael Magnusson <mikachu@gmail.com>
|
||||
|
||||
* 40024: Completion/Unix/Type/_path_files: Update _path_files
|
||||
since quoting requirements changed in 39412, this case only
|
||||
triggers when accept-exact-dirs is set.
|
||||
|
||||
2016-12-01 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
|
||||
|
||||
* 40050: Src/compat.c: prepend /**/ to global functions and #ifdefs
|
||||
|
|
|
@ -377,11 +377,9 @@ for prepath in "$prepaths[@]"; do
|
|||
# on, we need to remove quotes from everything that's not a pattern
|
||||
# character, because the code that does the file generation only
|
||||
# strips quotes from pattern characters (you know better than
|
||||
# to ask why). Because we need to test for a real directory,
|
||||
# however, for tmp2 we unquote everything.
|
||||
# to ask why).
|
||||
tmp1=${match[1]}
|
||||
tpre=${match[2]}
|
||||
tmp2=${(Q)tmp1}
|
||||
tmp1=${tmp1//(#b)\\(?)/$match[1]}
|
||||
tpre=${tpre//(#b)\\([^\\\]\[\^\~\(\)\#\*\?])/$match[1]}
|
||||
# Theory: donepath needs the quoting of special characters
|
||||
|
@ -390,7 +388,7 @@ for prepath in "$prepaths[@]"; do
|
|||
# doing something a bit different.
|
||||
tmp3=${donepath//(#b)\\(?)/$match[1]}
|
||||
while true; do
|
||||
if [[ -z $path_completion || -d $prepath$realpath$tmp3$tmp2 ]]; then
|
||||
if [[ -z $path_completion || -d $prepath$realpath$tmp3$tmp1 ]]; then
|
||||
tmp3=$tmp3$tmp1/
|
||||
# Now put donepath back the way it should be. (I think.)
|
||||
donepath=${tmp3//(#b)([\\\]\[\^\~\(\)\#\*\?])/\\$match[1]}
|
||||
|
|
Loading…
Reference in a new issue