diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2005-08-15 10:01:47 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2005-08-15 10:01:47 +0000 |
commit | 243539fa30b49d6e9f6c6a39257b35a9e2b70044 (patch) | |
tree | bab07ee16f6a8b1fe7db42cb5d5163156248a46d /Src/Zle/zle_hist.c | |
parent | 76364d31193ae8cd87a2e92cf2dfe3fb1601fc02 (diff) | |
download | zsh-243539fa30b49d6e9f6c6a39257b35a9e2b70044.tar.gz zsh-243539fa30b49d6e9f6c6a39257b35a9e2b70044.tar.xz zsh-243539fa30b49d6e9f6c6a39257b35a9e2b70044.zip |
21610: Turn on ZLE_UNICODE_SUPPORT and fix a few related problems.
Diffstat (limited to 'Src/Zle/zle_hist.c')
-rw-r--r-- | Src/Zle/zle_hist.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/Src/Zle/zle_hist.c b/Src/Zle/zle_hist.c index 7bb5f43a6..f529e7820 100644 --- a/Src/Zle/zle_hist.c +++ b/Src/Zle/zle_hist.c @@ -531,10 +531,11 @@ insertlastword(char **args) } } + metafy_line(); if (lastinsert && lastlen && - lastpos <= zlecs && - lastlen == zlecs - lastpos && - memcmp(lastinsert, (char *)&zleline[lastpos], lastlen) == 0) + lastpos <= zlemetacs && + lastlen == zlemetacs - lastpos && + memcmp(lastinsert, (char *)&zlemetaline[lastpos], lastlen) == 0) deleteword = 1; else lasthist = curhist; @@ -548,9 +549,9 @@ insertlastword(char **args) * confusion. */ if (deleteword) { - int pos = zlecs; - zlecs = lastpos; - foredel(pos - zlecs); + int pos = zlemetacs; + zlemetacs = lastpos; + foredel(pos - zlemetacs); /* * Mark that this has been deleted. * For consistency with history lines, we really ought to @@ -604,9 +605,9 @@ insertlastword(char **args) * successfully found a new one to insert. */ if (deleteword > 0) { - int pos = zlecs; - zlecs = lastpos; - foredel(pos - zlecs); + int pos = zlemetacs; + zlemetacs = lastpos; + foredel(pos - zlemetacs); } if (lastinsert) { zfree(lastinsert, lastlen); @@ -625,13 +626,15 @@ insertlastword(char **args) save = *t; *t = '\0'; /* ignore trailing whitespace */ lasthist = evhist; - lastpos = zlecs; + lastpos = zlemetacs; lastlen = t - s; lastinsert = zalloc(t - s); memcpy(lastinsert, s, lastlen); n = zmult; zmult = 1; + unmetafy_line(); + zs = stringaszleline((unsigned char *)s, 0, &len, NULL, NULL); doinsert(zs, len); free(zs); |