about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--README8
-rw-r--r--Src/glob.c9
3 files changed, 15 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index bf74cbe3c..88cf4cd19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-28  Peter Stephenson  <p.stephenson@samsung.com>
+
+	* users/21793: README, Src/glob.c: remove ancient undocumented
+	pre-"f" glob qualifer feature that unqualified integers were
+	treated as octal file mode.
+
 2016-07-27  Daniel Shahaf  <d.s@daniel.shahaf.name>
 
 	* unposted: Functions/Misc/add-zle-hook-widget: Prefix function's
diff --git a/README b/README
index d5343db19..9de5eb4a9 100644
--- a/README
+++ b/README
@@ -79,6 +79,14 @@ Other aspects of EXIT trap handling have not changed --- there is still
 only one EXIT trap at any point in a programme, so it is not generally
 useful to combine POSIX and non-POSIX behaviour in the same script.
 
+4) There was an undocumented feature dating from the early days of zsh
+that glob qualifiers consisting only of the digits 0 to 7 were treated
+as an octal file mode to "and" with the modes of files being tested.
+This has been removed in order to be more sensitive to syntax errors.
+The "f" qualifier has for many years been the documented way of testing
+file modes; it allows the "and" test ("*(f+1)" is the documented
+equivalent of "*(1)") as well as many other forms.
+
 Incompatibilities between 5.0.8 and 5.2
 ---------------------------------------
 
diff --git a/Src/glob.c b/Src/glob.c
index 850405fd4..a845c5fbb 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -1282,14 +1282,7 @@ zglob(LinkList list, LinkNode np, int nountok)
 		*ptr = '-';
 	while (*s && !newcolonmod) {
 	    func = (int (*) _((char *, Statptr, off_t, char *)))0;
-	    if (idigit(*s)) {
-		/* Store numeric argument for qualifier */
-		func = qualflags;
-		data = 0;
-		sdata = NULL;
-		while (idigit(*s))
-		    data = data * 010 + (*s++ - '0');
-	    } else if (*s == ',') {
+	    if (*s == ',') {
 		/* A comma separates alternative sets of qualifiers */
 		s++;
 		sense = 0;