Hello,

I'm a bit  confused by the wording at:

>   digit
>           Define the characters to be classified as numeric digits.
>
>           In the POSIX locale, only:
>
> 0 1 2 3 4 5 6 7 8 9
>
>
>           shall be included.
>
>           In a locale definition file, only the digits <zero>,
>           <one>, <two>, <three>, <four>, <five>, <six>,
>           <seven>, <eight>, and <nine> shall be specified, and
>           in contiguous ascending sequence by numerical value.
>           The digits <zero> to <nine> of the portable
>           character set are
>           automatically included in this class.

>From my understanding of that:

 - in the POSIX locale, it's 0123456789 only
 - it is not possible with the POSIX API to create a locale with
   a "digit" including anything but 0123456789
 - we can include all the <zero>...<nine> in a locale definition
   file though that's redundant as they are included anyway.
 - but there's nothing preventing a system locale to have a
   "digit" class that matches anything. A system could very well
   have a Venusian locale with a "digit" class that matches on
   abcdefgh because the Venusians have 8 fingers and that's how
   they count.

While [A-Z] and [[:alpha:]] are pretty random in practice,
I don't know of any system that has a locale where [0-9] or
[[:digit:]] matches anything other than 0123456789 But is that
guaranteed by the standard? Or do we need to use [0123456789] if
we want to match those explicitely in a locale other than the
POSIX locale?

-- 
Stephane

Reply via email to