diff --git a/ChangeLog b/ChangeLog index 931c74e3..6be32796 100644 --- a/ChangeLog +++ b/ChangeLog @@ -57,6 +57,9 @@ CVS code - - For consistency, preserve placewewant if we didn't unjustify instead of setting it to 0. (DLR) - winio.c: + unget_kbinput() + - Free s after the wctomb() call, since we don't need it after + that. (DLR) get_kbinput(), get_translated_kbinput(), get_ascii_kbinput(), get_untranslated_kbinput() - Make the ascii_digits variables ints instead of size_t's, diff --git a/src/winio.c b/src/winio.c index 0ee50278..2f6ca795 100644 --- a/src/winio.c +++ b/src/winio.c @@ -125,6 +125,7 @@ void unget_kbinput(int kbinput, bool meta_key, bool func_key) wchar_t wc = (wchar_t)kbinput; i = wctomb(s, wc); + free(s); if (i == -1) /* This wide character is unrecognized. Send it back. */ @@ -133,7 +134,6 @@ void unget_kbinput(int kbinput, bool meta_key, bool func_key) for (; i > 0; i--) ungetch(s[i - 1]); } - free(s); } else ungetch(kbinput); if (meta_key)