From 4b65f190450f70bd5819bb5c18e3370d75ffebde Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 6 Feb 2008 18:24:50 +0000 Subject: * fhandler.h (fhandler_console::trunc_buf): Add to use as cache for truncated multibyte characters on input. (fhandler_console::write_replacement_char): Declare new method. * fhandler_console.cc (CONVERT_LIMIT): Raise to 64K. (fhandler_console::fhandler_console): Initialize trunc_buf. (ERR): Define as independent value again. (fhandler_console::write_replacement_char): New method to print replacement chars. (fhandler_console::write_normal): Add handling for truncated multibyte sequences. Call next_char instead of pathetic CharNextExA function. Don't change src, rather just work with found later on. * miscfuncs.cc (is_cp_multibyte): Move here from strfuncs.cc. Don't call Windows function, restrict to well-known ANSI/OEM codepages and UTF-8. (next_char): Call CharNextExA only for doublebyte codepages. Implement for UTF-8 here. * strfuncs.cc (is_cp_multibyte): Move to miscfuncs.cc. * winsup.h (next_char): Declare. * include/limits.h (MB_LEN_MAX): Set to maximum value of MB_CUR_MAX as defined by newlib for now. --- winsup/cygwin/include/limits.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/include/limits.h') diff --git a/winsup/cygwin/include/limits.h b/winsup/cygwin/include/limits.h index 7f43cfb5c..e6e089da9 100644 --- a/winsup/cygwin/include/limits.h +++ b/winsup/cygwin/include/limits.h @@ -28,7 +28,9 @@ details. */ /* Maximum length of a multibyte character. */ #ifndef MB_LEN_MAX -#define MB_LEN_MAX 1 +/* TODO: This is newlib's max value. We should probably rather define our + own _mbtowc_r and _wctomb_r functions which are only codepage dependent. */ +#define MB_LEN_MAX 8 #endif /* Minimum and maximum values a `signed char' can hold. */ -- cgit v1.2.3