summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-10-25 11:53:49 +0100
committerPeter Stephenson <pws@zsh.org>2016-10-25 11:53:49 +0100
commit39ae9cd10a5987ac71dee8bef7bd3bc2ba5e4eb8 (patch)
tree2e45b010125e0bfd6bc9c90dfee4d85315d0e081
parent0f5e670cde5f844680a20f986786249dfe983584 (diff)
downloadzsh-39ae9cd10a5987ac71dee8bef7bd3bc2ba5e4eb8.tar.gz
zsh-39ae9cd10a5987ac71dee8bef7bd3bc2ba5e4eb8.zip
39723: metafy string passed to pattern in complist.
Also additional safety tokenizing a string with Meta characters.
-rw-r--r--ChangeLog6
-rw-r--r--Src/Zle/complist.c1
-rw-r--r--Src/glob.c4
3 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ee1fd94dc..775ad22e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-25 Peter Stephenson <p.stephenson@samsung.com>
+
+ * 39723: Src/Zle/complist.c, Src/glob.c: metafy string to be
+ used in pattern for complist. Also skip metafied characters
+ when tokenizing (typically this has no effect, however).
+
2016-10-24 Barton E. Schaefer <schaefer@zsh.org>
* unposted: NEWS, README: update for 39704.
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index 39ac782eb..d4672a194 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -415,6 +415,7 @@ getcoldef(char *s)
break;
*s++ = '\0';
}
+ p = metafy(p, strlen(p), META_USEHEAP);
tokenize(p);
if ((prog = patcompile(p, 0, NULL))) {
Patcol pc, po;
diff --git a/Src/glob.c b/Src/glob.c
index a845c5fbb..50f6dceb3 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -3499,6 +3499,10 @@ zshtokenize(char *s, int flags)
for (; *s; s++) {
cont:
switch (*s) {
+ case Meta:
+ /* skip both Meta and following character */
+ s++;
+ break;
case Bnull:
case Bnullkeep:
case '\\':