lineedit: improve Unicode handling (still buggy though)

function                                             old     new   delta
unicode_strlen                                         -      31     +31
read_line_input                                     3876    3879      +3
lineedit_read_key                                    255     246      -9
parse_and_put_prompt                                 785     755     -30
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/2 up/down: 34/-39)             Total: -5 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2013-08-19 16:44:05 +02:00
parent 8395bd3f52
commit 7a18043a96
2 changed files with 24 additions and 11 deletions

View file

@ -43,8 +43,7 @@ void FAST_FUNC reinit_unicode(const char *LANG)
setlocale(LC_CTYPE, LANG ? LANG : "");
/* In unicode, this is a one character string */
// can use unicode_strlen(string) too, but otherwise unicode_strlen() is unused
width = mbstowcs(NULL, unicode_0x394, INT_MAX);
width = unicode_strlen(unicode_0x394);
unicode_status = (width == 1 ? UNICODE_ON : UNICODE_OFF);
}
@ -986,7 +985,6 @@ int FAST_FUNC unicode_bidi_is_neutral_wchar(wint_t wc)
/* The rest is mostly same for libc and for "homegrown" support */
#if 0 // UNUSED
size_t FAST_FUNC unicode_strlen(const char *string)
{
size_t width = mbstowcs(NULL, string, INT_MAX);
@ -994,7 +992,6 @@ size_t FAST_FUNC unicode_strlen(const char *string)
return strlen(string);
return width;
}
#endif
size_t FAST_FUNC unicode_strwidth(const char *string)
{