This is the mail archive of the cygwin-developers@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: isspace() & i18n


On Fri, Jun 01, 2001 at 10:16:58AM +0400, egor duda wrote:
>Hi!
>
>Thursday, 31 May, 2001 Christopher Faylor cgf@redhat.com wrote:
>
>CF> This has been checked in.  It doesn't solve the larger issue of
>CF> if this is a newlib bug or not but I think that this is a correct
>CF> fix nonetheless.
>
>unfortunately, no. first, as isspace() wants int, this is equivalent
>to (int)(unsigned int)(char)(-33) == -33
>
>correct solution would be 'isspace ((unsigned char) *s), but i've
>found out that it doesn't work, too! newlib's defining _ctype_ as
>char[257], but of those 257 chars only 129 are initialized.
>
>i'm still failing to produce a "full" patch to implement [-128,256]
>range, and if i can't find a reason why it's not working, i'd post an
>"intermediate" one.
>
>i'm trying to define
>_ctype_b[128+256]={...};
>(dllexport) _ctype_=_ctype_b + 127;
>
>but, for some reason it doesn't work. i suspect it has somthing to do
>with relocation of data exported from dll, but to be sure, i have to
>put my hands a bit deeper into assembled code.

Aren't you changing _ctype from an array reference to a pointer reference
above?  That won't work with code that uses _ctype currently.

cgf


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]