summaryrefslogtreecommitdiff
path: root/src/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui.c')
-rw-r--r--src/ui.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/ui.c b/src/ui.c
index be5d8c50f..3e8875851 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1689,13 +1689,21 @@ push_raw_key(char_u *s, int len)
tmpbuf = hangul_string_convert(s, &len);
if (tmpbuf != NULL)
+ {
s = tmpbuf;
- while (len--)
- inbuf[inbufcount++] = *s++;
-
- if (tmpbuf != NULL)
+ for (; len--; s++)
+ {
+ inbuf[inbufcount++] = *s;
+ if (*s == CSI)
+ {
+ /* Turn CSI into K_CSI. */
+ inbuf[inbufcount++] = KS_EXTRA;
+ inbuf[inbufcount++] = (int)KE_CSI;
+ }
+ }
vim_free(tmpbuf);
+ }
}
#endif