This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: some unusual errors
- To: gnu-win32 at cygnus dot com
- Subject: Re: some unusual errors
- From: Benjamin Riefenstahl <benny at crocodial dot de>
- Date: Tue, 22 Sep 1998 11:56:39 +0200
- Organization: Crocodial Communications EntwicklungsGmbH
- References: <199809211655.MAA13243@venus.solidum.com>
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".