about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2015-09-12 20:49:13 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2015-09-12 20:49:13 -0700
commit8a818381cfa843f6bdc25e3517500da31d63c282 (patch)
treed2628a05eb4e77072dc6801e9c8d008f0bd37afe /Src
parent9cb8c3f4b5d9918028791d975cf3aa7d745b4b22 (diff)
downloadzsh-8a818381cfa843f6bdc25e3517500da31d63c282.tar.gz
zsh-8a818381cfa843f6bdc25e3517500da31d63c282.tar.xz
zsh-8a818381cfa843f6bdc25e3517500da31d63c282.zip
36525: revert only the selfinsert() bit of 36496
selfinsert() may be called with incomplete wide character processing from
places other than getkeymapcmd()
Diffstat (limited to 'Src')
-rw-r--r--Src/Zle/zle_misc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/Src/Zle/zle_misc.c b/Src/Zle/zle_misc.c
index 297dc4ca8..0483f758d 100644
--- a/Src/Zle/zle_misc.c
+++ b/Src/Zle/zle_misc.c
@@ -115,7 +115,10 @@ selfinsert(UNUSED(char **args))
     ZLE_CHAR_T tmp;
 
 #ifdef MULTIBYTE_SUPPORT
-    DPUTS(!lastchar_wide_valid, "keybuf did not read full wide character");
+    /* may be redundant with getkeymapcmd(), but other widgets call here too */
+    if (!lastchar_wide_valid)
+	if (getrestchar(lastchar, NULL, NULL) == WEOF)
+	    return 1;
 #endif
     tmp = LASTFULLCHAR;
     doinsert(&tmp, 1);