summaryrefslogtreecommitdiff
path: root/Src/Zle/zle_keymap.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-04-04 14:54:54 +0100
committerPeter Stephenson <pws@zsh.org>2016-04-04 14:54:54 +0100
commit2b7035d974a69d9a47b1f89f868787a4585386a1 (patch)
tree419fb9c926df47a44888ae642866f11764610c84 /Src/Zle/zle_keymap.c
parentcaff72941d86983b44103653895328b411b29b4e (diff)
downloadzsh-2b7035d974a69d9a47b1f89f868787a4585386a1.tar.gz
zsh-2b7035d974a69d9a47b1f89f868787a4585386a1.zip
38241: ungetkeycmd() needs to unmetafy key string.
Use the new function to simplify memory management in prefix handling. Third time lucky.
Diffstat (limited to 'Src/Zle/zle_keymap.c')
-rw-r--r--Src/Zle/zle_keymap.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/Src/Zle/zle_keymap.c b/Src/Zle/zle_keymap.c
index 382eb8d41..13fd13844 100644
--- a/Src/Zle/zle_keymap.c
+++ b/Src/Zle/zle_keymap.c
@@ -1672,7 +1672,7 @@ getkeybuf(int w)
mod_export void
ungetkeycmd(void)
{
- ungetbytes(keybuf, keybuflen);
+ ungetbytes_unmeta(keybuf, keybuflen);
}
/* read a command from the current keymap, with widgets */
@@ -1690,17 +1690,12 @@ getkeycmd(void)
if(!*seq)
return NULL;
if(!func) {
- int len;
- char *pb;
-
if (++hops == 20) {
zerr("string inserting another one too many times");
hops = 0;
return NULL;
}
- pb = unmetafy(ztrdup(str), &len);
- ungetbytes(pb, len);
- zfree(pb, strlen(str) + 1);
+ ungetbytes_unmeta(str, strlen(str));
goto sentstring;
}
if (func == Th(z_executenamedcmd) && !statusline) {