diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-03-24 12:18:34 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-03-24 12:18:34 +0000 |
commit | 161211d186a16e4f090b8b3c63040f0b9aee25d4 (patch) | |
tree | 4ac0e1154417f3b0119ba79407a8c5687d96bf83 /winsup/cygwin/winsup.h | |
parent | 6a32d500a9d601b4f25cee0e1ec6b2ac5195a7e9 (diff) | |
download | newlib-161211d186a16e4f090b8b3c63040f0b9aee25d4.zip newlib-161211d186a16e4f090b8b3c63040f0b9aee25d4.tar.gz newlib-161211d186a16e4f090b8b3c63040f0b9aee25d4.tar.bz2 |
* ctype.cc (_CTYPE_DATA_0_127): Add _B class to TAB character.
(__ctype_default): New character class array for default ASCII
character set.
(__ctype_iso): New array of character class array for ISO charsets.
(__ctype_cp): Ditto for singlebyte Windows codepages.
(tolower): Implement as distinct function to support any singlebyte
charset.
(toupper): Ditto.
(__set_ctype): New function to copy singlebyte character classes
corresponding to current charset to ctype_b array.
Align copyright text to upstream.
* dcrt0.cc (dll_crt0_1): Reset current locale to "C" per POSIX.
* environ.cc (set_file_api_mode): Remove.
(codepage_init): Remove.
(parse_thing): Remove "codepage" setting.
(environ_init): Set locale according to environment settings, or
to current codepage, before converting environment to multibyte.
* fhandler.h (fhandler_console::write_replacement_char): Drop argument.
* fhandler_console.cc (dev_console::str_to_con): Call sys_cp_mbstowcs
rather than MultiByteToWideChar.
(fhandler_console::write_replacement_char): Always print a funny
half filled square if a character isn't in the current charset.
(fhandler_console::write_normal): Convert to using __mbtowc
rather than next_char.
* fork.cc (frok::child): Drop call to set_file_api_mode.
* globals.cc (enum codepage_type) Remove.
(current_codepage): Remove.
* miscfuncs.cc (cygwin_wcslwr): Unused, dangerous. Remove.
(cygwin_wcsupr): Ditto.
(is_cp_multibyte): Remove.
(next_char): Remove.
* miscfuncs.h (is_cp_multibyte): Drop declaration.
(next_char): Ditto.
* strfuncs.cc (get_cp): Remove.
(__db_wctomb): New function to implement _wctomb_r functionality for
doublebyte charsets using WideCharToMultiByte.
(__sjis_wctomb): New function to replace unusable newlib function.
(__jis_wctomb): Ditto.
(__eucjp_wctomb): Ditto.
(__gbk_wctomb): New function.
(__kr_wctomb): Ditto.
(__big5_wctomb): Ditto.
(__db_mbtowc): New function to implement _mbtowc_r functionality for
doublebyte charsets using MultiByteToWideChar.
(__sjis_mbtowc): New function to replace unusable newlib function.
(__jis_mbtowc): Ditto.
(__eucjp_mbtowc): Ditto.
(__gbk_mbtowc): New function.
(__kr_mbtowc): New function
(__big5_mbtowc): New function
(__set_charset_from_codepage): New function.
(sys_wcstombs): Reimplement, basically using same wide char to multibyte
conversion as newlib's application level functions. Plus extras.
Add lengthy comment to explain. Change return type to size_t.
(sys_wcstombs_alloc): Just use sys_wcstombs. Change return type to
size_t.
(sys_cp_mbstowcs): Replace sys_mbstowcs, take additional codepage
argument. Explain why. Change return type to size_t.
(sys_mbstowcs_alloc): Just use sys_mbstowcs. Change return type to
size_t.
* wchar.h: Declare internal functions implemented in strfuncs.cc.
(wcscasecmp): Remove.
(wcsncasecmp): Remove.
(wcslwr): Remove.
(wcsupr): Remove.
* winsup.h (codepage_init): Remove declaration.
(get_cp): Ditto.
(sys_wcstombs): Align declaration to new implementation.
(sys_wcstombs_alloc): Ditto.
(sys_cp_mbstowcs): Add declaration.
(sys_mbstowcs): Define as inline function.
(sys_mbstowcs_alloc): Align declaration to new implementation.
(set_file_api_mode): Remove declaration.
* include/ctype.h (isblank): Redefine to use _B character class.
(toupper): Remove ASCII-only definition.
(tolower): Ditto.
Diffstat (limited to 'winsup/cygwin/winsup.h')
-rw-r--r-- | winsup/cygwin/winsup.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h index 97980ea..44f7caa 100644 --- a/winsup/cygwin/winsup.h +++ b/winsup/cygwin/winsup.h @@ -104,21 +104,24 @@ extern const char case_folded_upper[]; /* The one function we use from winuser.h most of the time */ extern "C" DWORD WINAPI GetLastError (void); -void codepage_init (const char *buf); -UINT get_cp (); - /* Used as type by sys_wcstombs_alloc and sys_mbstowcs_alloc. For a description see there. */ #define HEAP_NOTHEAP -1 -int __stdcall sys_wcstombs (char *, int, const PWCHAR, int = -1) +size_t __stdcall sys_wcstombs (char *, size_t, const PWCHAR, size_t = (size_t) -1) __attribute__ ((regparm(3))); -int __stdcall sys_wcstombs_alloc (char **, int, const PWCHAR, int = -1) +size_t __stdcall sys_wcstombs_alloc (char **, int, const PWCHAR, size_t = (size_t) -1) __attribute__ ((regparm(3))); -int __stdcall sys_mbstowcs (PWCHAR, int, const char *, int = -1) +size_t __stdcall sys_cp_mbstowcs (UINT, PWCHAR, size_t, const char *, size_t = (size_t) -1) __attribute__ ((regparm(3))); -int __stdcall sys_mbstowcs_alloc (PWCHAR *, int, const char *, int = -1) +inline size_t +sys_mbstowcs (PWCHAR dst, size_t dlen, const char *src, + size_t nms = (size_t) -1) +{ + return sys_cp_mbstowcs (0, dst, dlen, src, nms); +} +size_t __stdcall sys_mbstowcs_alloc (PWCHAR *, int, const char *, size_t = (size_t) -1) __attribute__ ((regparm(3))); /* Used to check if Cygwin DLL is dynamically loaded. */ @@ -333,8 +336,6 @@ inline void clear_procimptoken () CloseHandle (old_procimp); } } - -void set_file_api_mode (codepage_type); #endif #endif /* defined __cplusplus */ |