* strfuncs.cc (__sjis_wctomb): Special handling for characters which
differ between SJIS and Windows codepage 932, if charset is "SJIS". (__sjis_mbtowc): Ditto. (_jis_wctomb): Remove. (__jis_mbtowc): Remove.
This commit is contained in:
parent
b0466b3702
commit
6b121156cd
|
@ -1,3 +1,11 @@
|
|||
2010-01-23 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* strfuncs.cc (__sjis_wctomb): Special handling for characters which
|
||||
differ between SJIS and Windows codepage 932, if charset is "SJIS".
|
||||
(__sjis_mbtowc): Ditto.
|
||||
(_jis_wctomb): Remove.
|
||||
(__jis_mbtowc): Remove.
|
||||
|
||||
2010-01-23 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* nlsfuncs.cc (wcsxfrm): Call LCMapStringW with LCMAP_BYTEREV flag to
|
||||
|
|
|
@ -108,17 +108,26 @@ 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);
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
__jis_wctomb (struct _reent *r, char *s, wchar_t wchar, const char *charset,
|
||||
mbstate_t *state)
|
||||
{
|
||||
/* FIXME: See comment at start of file. */
|
||||
return __ascii_wctomb (r, s, wchar, charset, state);
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
__eucjp_wctomb (struct _reent *r, char *s, wchar_t wchar, const char *charset,
|
||||
mbstate_t *state)
|
||||
|
@ -243,15 +252,17 @@ extern "C" int
|
|||
__sjis_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n,
|
||||
const char *charset, mbstate_t *state)
|
||||
{
|
||||
return __db_mbtowc (r, pwc, s, n, 932, state);
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
__jis_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n,
|
||||
const char *charset, mbstate_t *state)
|
||||
{
|
||||
/* FIXME: See comment at start of file. */
|
||||
return __ascii_mbtowc (r, pwc, s, n, charset, 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;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
|
|
Loading…
Reference in New Issue