tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: using the interfaces in ctype.h

On Sun, 20 Apr 2008, Greg A. Woods; Planix, Inc. wrote:
> Indeed!  Some implementations were so lame they didn't include the
> mask in the implementation of the macro!

If the implementation masked the value before using it, then it would be
unable to distinguish EOF from UCHAR_MAX (typically '\377').  Anyway,
the onus falls on the caller to ensure that they don't pass invalid
values; otherwise the implementation is allowed to do anything at all.

> Oh oh, oops, the NetBSD implementations don't seem to include the mask
> either!  I didn't realized that!  So sad.  (Which may even mean they
> violate the standards implication that they be able to safely accept
> the value of EOF.

Huh?  The NETBSD implementations accept EOF.  Since masking inside the
implementation would violate the requirement to distinguish EOF from
UCHAR_MAX, it's good that NetBSD doesn't do that.

think that masking inside the implementation would be 

> FreeBSD, OpenBSD, and Darwin all seem to have much better
> implementations, though they are all using proper (inline) functions
> which makes it easier in some ways to do it right.)

I am mildly curious.  In what way are they "better"?

--apb (Alan Barrett)

Home | Main Index | Thread Index | Old Index