Inline function definitions for isdigit and isxdigit?

Florian Weimer fweimer@redhat.com
Fri Sep 16 15:23:00 GMT 2016


On 09/16/2016 04:58 PM, Paul Eggert wrote:
> On 09/16/2016 05:06 AM, Florian Weimer wrote:
>> For isxdigit, C99 and C11 make a final determination that only '0' …
>> '9', 'a' … 'f' and 'A' … 'F' are hexadecimal digits.
>
> In that case, POSIX cannot override this and say that there are other
> hexadecimal digits. The POSIX spec for isxdigit says "Any conflict
> between the requirements described here and the ISO C standard is
> unintentional. This volume of POSIX.1-2008 defers to the ISO C
> standard."

POSIX says this even if there are intentional differences …

I suspect it's just something you have to say.  Like in the old days, 
when a scholar praised and affirmed the current doctrine right at the 
start, but then proceeded to obliterate it in his writing.

> So even if another part of POSIX allows more symbolic names
> in the xdigit character class and this would seem to contradict C99,
> this contradiction is unintentional and the xdigit character class must
> be as specified by C99.

Yes, particularly since C99 and C11 make exceptions for locales 
affecting other character classes.  I think the intent on the C side is 
that isxdigit is not locale-dependent at all.

Florian



More information about the Libc-alpha mailing list