This is the mail archive of the cygwin@sourceware.cygnus.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: some unusual errors


Hi Michael,


> >>>>> "Benjamin" == Benjamin Riefenstahl <benny@crocodial.de> writes:
>     Benjamin>         ... isspace((unsigned char)*s); ...

Michael Richardson wrote:
>   Then the routines should cast the argument appropriately, or the routines
> should be functions and cast things appropriate, or "char" should be by
> default unsigned.

- By the definition of the interface, an internal cast is out of the
question (the interface is defined to handle EOF correctly and that
usually means handling it differently from '\xFF').
- You can replace the routines with functions in the RTL by #undefining
the macros, but that doesn't gain you anything here, negative char
values (except EOF) would still cause undefined behaviour (i.e. may
crash). OTOH the warning would go away, which I would consider a bad
thing, being that it hightlights a real problem, and the performance
would suffer.
- You can make char unsigned in gcc (-funsigned-char), but if you rely
on that in your code, it would be non-portable.

You're basically right, the defined interface is not as user friendly as
it pretends to be. Still it's the defined interface, and for the time
being neither you nor me can change the definition and changing a
particular implementation doesn't buy me enough to do it (I used to do
that, but nowadays I rather write portable code).


so long, benny
======================================
Benjamin Riefenstahl (benny@crocodial.de)
Crocodial Communications EntwicklungsGmbH
Ruhrstraße 61, D-22761 Hamburg, Germany
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


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