diff --git a/main.c b/main.c index c409d0a..f0f0c2f 100644 --- a/main.c +++ b/main.c @@ -141,7 +141,7 @@ int main(int argc, char **argv) int errflag; /* C error processing? */ bname_t bname ; /* buffer name of file to read */ - setlocale( LC_CTYPE, "") ; /* wide character support (UTF-32) */ + setlocale( LC_CTYPE, "en_GB.UTF-8") ; /* wide character support (UTF-32) */ #if PKCODE & BSD sleep(1); /* Time for window manager. */ diff --git a/utf8.c b/utf8.c index c7dc148..9448356 100644 --- a/utf8.c +++ b/utf8.c @@ -15,8 +15,9 @@ unsigned utf8_width( unicode_t c) { assert( sizeof( wchar_t) == 2) ; /* wcwidth only handles UTF-16 */ return (c < 0x10000) ? (unsigned) wcwidth( (wchar_t) c) : 2 ; #elif BSD - assert( sizeof( wchar_t) == 4) ; /* wcwidth should handle UTF-32 */ - return 1 ; +// assert( sizeof( wchar_t) == 4) ; /* wcwidth should handle UTF-32 */ + int ret = wcwidth( (wchar_t) c) ; + return (ret < 0) ? 1 : (unsigned) ret ; #else return (unsigned) wcwidth( (wchar_t) c) ; #endif