Mercurial > vim
changeset 8393:a7f94f0ba183 v7.4.1488
commit https://github.com/vim/vim/commit/179f1b9a7ddf3624daf6380c3dad740e0a1ba361
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Mar 4 22:52:34 2016 +0100
patch 7.4.1488
Problem: Not using key when result from hangul_string_convert() is NULL.
Solution: Fall back to not converted string.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 04 Mar 2016 23:00:04 +0100 |
parents | 1bf1b88968a2 |
children | a547a31981c5 |
files | src/ui.c src/version.c |
diffstat | 2 files changed, 13 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ui.c +++ b/src/ui.c @@ -1686,24 +1686,24 @@ add_to_input_buf_csi(char_u *str, int le push_raw_key(char_u *s, int len) { char_u *tmpbuf; + char_u *inp = s; + /* use the conversion result if possible */ tmpbuf = hangul_string_convert(s, &len); if (tmpbuf != NULL) + inp = tmpbuf; + + for (; len--; inp++) { - s = tmpbuf; - - for (; len--; s++) + inbuf[inbufcount++] = *inp; + if (*inp == CSI) { - inbuf[inbufcount++] = *s; - if (*s == CSI) - { - /* Turn CSI into K_CSI. */ - inbuf[inbufcount++] = KS_EXTRA; - inbuf[inbufcount++] = (int)KE_CSI; - } + /* Turn CSI into K_CSI. */ + inbuf[inbufcount++] = KS_EXTRA; + inbuf[inbufcount++] = (int)KE_CSI; } - vim_free(tmpbuf); } + vim_free(tmpbuf); } #endif