diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Zle/zle_misc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Src/Zle/zle_misc.c b/Src/Zle/zle_misc.c index b2c101b3a..022d98e64 100644 --- a/Src/Zle/zle_misc.c +++ b/Src/Zle/zle_misc.c @@ -911,8 +911,9 @@ executenamedcommand(char *prmt) showinglist = 0; zmult = zmultsav; } else if (!nextnode(firstnode(namedcmdll))) { - ZLE_STRING_T ztmp = stringaszleline(peekfirst(namedcmdll), - &len, NULL); + char *peekstr = ztrdup(peekfirst(namedcmdll)); + ZLE_STRING_T ztmp = stringaszleline(peekstr, &len, NULL); + zsfree(peekstr); ZS_memcpy(ptr = cmdbuf, ztmp, len); ptr += len; free(ztmp); @@ -920,8 +921,9 @@ executenamedcommand(char *prmt) goto unambiguous; } else { int ltmp; - ZLE_STRING_T ztmp = stringaszleline(peekfirst(namedcmdll), - <mp, NULL); + char *peekstr = ztrdup(peekfirst(namedcmdll)); + ZLE_STRING_T ztmp = stringaszleline(peekstr, <mp, NULL); + zsfree(peekstr); ZS_memcpy(cmdbuf, ztmp, ltmp); free(ztmp); ptr = cmdbuf + namedcmdambig; |