about summary refs log tree commit diff
path: root/README
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-01-19 17:24:12 +0000
committerPeter Stephenson <pws@zsh.org>2016-01-19 17:24:12 +0000
commitad16356e1923ec1b4daf97b27b10a835cfe73ba7 (patch)
tree714fe0c1d6c89a32ac5194475402fa6dc3f8d218 /README
parent8eb9070d6785f423dd9bdbbb0513aa47c8a08d62 (diff)
downloadzsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.tar.gz
zsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.tar.xz
zsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.zip
37689: ! and ^ need to be tokenised in character sets
Diffstat (limited to 'README')
-rw-r--r--README34
1 files changed, 30 insertions, 4 deletions
diff --git a/README b/README
index 2e2ebce2b..6e5b73067 100644
--- a/README
+++ b/README
@@ -29,17 +29,43 @@ Zsh is a shell with lots of features.  For a list of some of these, see the
 file FEATURES, and for the latest changes see NEWS.  For more
 details, see the documentation.
 
-Incompatibilities between 5.1 and 5.2
+Incompatibilities between 5.2 and 5.3
 -------------------------------------
 
+In character classes delimited by "[" and "]" within patterns, whether
+used for filename generation (globbing) or other forms of pattern
+matching, it used not to be possible to quote "-" when used for a range,
+or "^" and "!" when used for negating a character set.  The characters can
+now be quoted by any of the standard shell means, but note that
+the "[" and "]" must not be quoted.  For example,
+
+  [[ $a = ['a-z'] ]]
+
+matches if the variable a contains just one of the characters "a", "-"
+or "z" only.  Previously this would have matched any lower case ASCII
+letter.  Note therefore the useful fact that
+
+  [[ $a = ["$cset"] ]]
+
+matches any character contained in the variable "cset".  A consequence
+of this change is that variables that should have active ranges need
+(with default zsh options) to be indicated explicitly, e.g.
+
+  cset="a-z"
+  [[ b = [${~cset}] ]]
+
+The "~" causes the "-" character to be active.  In sh emulation the
+"~" is unncessary in this example and double quotes must be used to
+suppress the range behaviour of the "-".
+
+Incompatibilities between 5.0.8 and 5.2
+---------------------------------------
+
 The behaviour of the parameter flag (P) has changed when it appears
 in a nested parameter group, in order to make it more useful in
 such cases.  A (P) in the outermost parameter group behaves as
 before.  See NEWS for more.
 
-Incompatibilities between 5.0.8 and 5.1
----------------------------------------
-
 The default behaviour when text is pasted into an X Windows terminal has
 changed significantly (unless you are using a very old terminal emulator
 that doesn't support this mode).  Now, the new "bracketed paste mode"