Question

J. Johnston jjohnstn@redhat.com
Thu Jul 24 22:56:00 GMT 2003


mail_lists@mail.ru wrote:
> Hello.
> 
> Would anybody explain me please, why __jp2uc() call is needed in
> newlib-1.11.0/newlib/libc/ctype/iswalpha.c, lines 80, 85, 90.
> 
> As I understand, this is a conversion from JIS, SJIS and EUCJP to
> Unicode. But, wide characters are independent from any encoding type
> and are usually already represented by Unicode.
> 
> Thanks.
> Artem.
> 

The answer is historical.  Unicode support wasn't added until later.  The JIS, SJIS, and
EUCJP wchar_t support was initially added as part of an embedded processor contract back in the
Cygnus Solutions days.  To minimize the footprint, the implementation chose to convert into simple
double-byte characters based on the initial character set; the effect being that one couldn't convert
from one character set into wchar_t and then back into another.

Now that we have unicode support, we could add a __uc2jp function and then use that function and __jp2uc
when converting.  This could be under the control of configuration such that smaller existing platforms
could still use the old design.

-- Jeff J.



More information about the Newlib mailing list