diff options
author | Peter Stephenson <pws@zsh.org> | 2016-07-28 09:46:40 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2016-07-28 09:51:19 +0100 |
commit | 895e9beb294a9e86c8ead01ff177624848f495ff (patch) | |
tree | 55f4e2f711c27e3002b2f01ce00079633a8007c4 | |
parent | 74722c7392ae95069df6966b1194d3e10320f3de (diff) | |
download | zsh-895e9beb294a9e86c8ead01ff177624848f495ff.tar.gz zsh-895e9beb294a9e86c8ead01ff177624848f495ff.tar.xz zsh-895e9beb294a9e86c8ead01ff177624848f495ff.zip |
users/21793: Remove raw integers as glob qualifiers.
There was an ancient undocumented feature that these were treated as a file mode to "or" with that of the file under test. The only documented way of doing this has always been the "f" qualifier, so removed the effect of raw integers to make errors more obvious.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | README | 8 | ||||
-rw-r--r-- | Src/glob.c | 9 |
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; |