summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--Completion/Unix/Type/_files2
-rw-r--r--Test/D04parameter.ztst19
3 files changed, 27 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 572a4e826..34171de9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-03-15 Peter Stephenson <pws@csr.com>
+
+ * 27780: Completion/Unix/Type/_files, Test/D04parameter.ztst:
+ users/14905 changed the number of backslashes needed to
+ quote backslashes in :s modifier.
+
2010-03-11 Peter Stephenson <p.w.stephenson@ntlworld.com>
* unposted: Doc/Zsh/expn.yo: note that & needs quoting in :s in
@@ -12890,5 +12896,5 @@
*****************************************************
* This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.4928 $
+* $Revision: 1.4929 $
*****************************************************
diff --git a/Completion/Unix/Type/_files b/Completion/Unix/Type/_files
index 1969a5feb..762ef4eaa 100644
--- a/Completion/Unix/Type/_files
+++ b/Completion/Unix/Type/_files
@@ -90,7 +90,7 @@ fi
tried=()
for def in "$pats[@]"; do
- eval "def=( ${${def:gs/\\:/\\\\\\\\\\\\:}//(#b)([][()|*?^#~<>])/\\${match[1]}} )"
+ eval "def=( ${${def:gs/\\:/\\\\\\:}//(#b)([][()|*?^#~<>])/\\${match[1]}} )"
tmp="${(@M)def#*[^\\]:}"
(( $tried[(I)${(q)tmp}] )) && continue
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst
index f81b7de1d..d43e60efa 100644
--- a/Test/D04parameter.ztst
+++ b/Test/D04parameter.ztst
@@ -959,6 +959,25 @@
>oof/rab
>oof/rab
+ bsbs='X\\\\Y'
+ print -r -- ${bsbs:s/\\/\\/}
+ print -r -- "${bsbs:s/\\/\\/}"
+ print -r -- ${bsbs:s/\\\\/\\\\/}
+ print -r -- "${bsbs:s/\\\\/\\\\/}"
+ print -r -- ${bsbs:gs/\\/\\/}
+ print -r -- "${bsbs:gs/\\/\\/}"
+ print -r -- ${bsbs:gs/\\\\/\\\\/}
+ print -r -- "${bsbs:gs/\\\\/\\\\/}"
+0:Handling of backslashed backslashes in substitution modifier
+>X\\\\Y
+>X\\\\Y
+>X\\\\Y
+>X\\\\Y
+>X\\\\Y
+>X\\\\Y
+>X\\\\Y
+>X\\\\Y
+
print -r ${${:-one/two}:s,/,X&Y,}
print -r ${${:-one/two}:s,/,X\&Y,}
print -r ${${:-one/two}:s,/,X\\&Y,}