diff options
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/zle_hist.c | 9 | ||||
-rw-r--r-- | Src/Zle/zle_thingy.c | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/Src/Zle/zle_hist.c b/Src/Zle/zle_hist.c index 80a406a8a..402887d98 100644 --- a/Src/Zle/zle_hist.c +++ b/Src/Zle/zle_hist.c @@ -577,13 +577,17 @@ insertlastword(char **args) * a deleted word, because that can only have come * from a non-empty line. I think. */ - if (!(l = bufferwords(NULL, NULL, NULL))) + if (!(l = bufferwords(NULL, NULL, NULL))) { + unmetafy_line(); return 1; + } nwords = countlinknodes(l); } else { /* Some stored line. */ - if (!(he = quietgethist(evhist)) || !he->nwords) + if (!(he = quietgethist(evhist)) || !he->nwords) { + unmetafy_line(); return 1; + } nwords = he->nwords; } if (wordpos) { @@ -602,6 +606,7 @@ insertlastword(char **args) * has not changed, and lastinsert is still valid. */ lasthist = evhist; + unmetafy_line(); return 1; } /* diff --git a/Src/Zle/zle_thingy.c b/Src/Zle/zle_thingy.c index 56e0c51cb..b24e686b8 100644 --- a/Src/Zle/zle_thingy.c +++ b/Src/Zle/zle_thingy.c @@ -358,6 +358,8 @@ bin_zle(char *name, char **args, Options ops, UNUSED(int func)) struct opn const *op, *opp; int n; + UNMETACHECK(); + /* select operation and ensure no clashing arguments */ for(op = opns; op->o && !OPT_ISSET(ops,STOUC(op->o)); op++) ; if(op->o) |