* nlsfuncs.cc (check_codepage): Move from syscalls.cc here.

(internal_setlocale): Ditto.
	(initial_setlocale): Ditto.
	(setlocale): Ditto.
	* strfuncs.cc (__sjis_wctomb): Revert previous patch.
	(__sjis_mbtowc): Ditto.
	* syscalls.cc: Move setlocale-related functions to nlsfuncs.cc.
This commit is contained in:
Corinna Vinschen
2010-01-24 12:29:49 +00:00
parent 88116ad22e
commit 57c7e05ea7
4 changed files with 121 additions and 139 deletions

View File

@ -108,23 +108,6 @@ extern "C" int
__sjis_wctomb (struct _reent *r, char *s, wchar_t wchar, const char *charset,
mbstate_t *state)
{
if (*charset == 'S')
{
/* SJIS is not exactly CP932. Two ASCII code points are converted
differently. */
if (wchar == L'\x00a5') /* SJIS has Yen sign in place of Backslash */
{
if (s)
*s = '\x5c';
return 1;
}
else if (wchar == L'\x203e') /* SJIS has Overline in place of Tilde */
{
if (s)
*s = '\x7e';
return 1;
}
}
return __db_wctomb (r,s, wchar, 932);
}
@ -252,17 +235,7 @@ extern "C" int
__sjis_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n,
const char *charset, mbstate_t *state)
{
int ret = __db_mbtowc (r, pwc, s, n, 932, state);
if (*charset == 'S' && pwc && ret == 1)
{
/* CP932 is not exactly SJIS. Two ASCII code points are converted
differently. */
if (*s == '\x5c') /* SJIS has Yen sign in place of Backslash */
*pwc = L'\x00a5';
else if (*s == '\x7e') /* SJIS has Overline in place of Tilde */
*pwc = L'\x203e';
}
return ret;
return __db_mbtowc (r, pwc, s, n, 932, state);
}
extern "C" int