On 2/13/23 11:09, enh wrote:
> On Mon, Feb 13, 2023 at 1:07 AM Rob Landley <r...@landley.net> wrote:
>> >> Oh goddess why is it doing uselocale(newlocale()), I think it was a macos 
>> >> thing?
>> >> Yeah, git annotate says commit 4786fd610 which was Elliott. (Do you 
>> >> remember why
>> >> it was doing that?)
>> >
>> > because there isn't a C.UTF-8 (no matter how you try to spell it!) on
>> > macOS, so we need to "merge" utf-8-ness into the current locale. (i'd
>>
>> That isn't what  the  man page for newlocale() says we're doing, though?
>> newlocale(FLAG, "NAME", 0) is creating a new locale that's a subset of the
>> "NAME" locale, and the 0 means locale elements we don't give a flag for are
>> copied from the "POSIX" locale. (Which should be a synonym for "C".)
> 
> i don't think so? that's not how i read
> https://pubs.opengroup.org/onlinepubs/9699919799/functions/newlocale.html
> anyway. i think it comes down to how you interpret "default locale"? i
> read it as equivalent to "", but you think it means "POSIX". i think
> POSIX agrees with me though? (search for "default locale" on
> https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html
> for their definition. this is why we call setlocale() in that code,
> fwiw.)

I was going by https://man7.org/linux/man-pages/man3/newlocale.3.html

       For  each category specified in category_mask, the locale data from lo‐
       cale will be used in the object returned by newlocale().  If a new  lo‐
       cale  object is being created, data for all categories not specified in
       category_mask is taken from the default ("POSIX") locale.

It's entirely possible bionic and glibc are doing different things here. I
wonder what musl is doing? (Alas, got my eyes dilated for an eye exam today, so
not digging through code to try to find out just now...)

Rob
_______________________________________________
Toybox mailing list
Toybox@lists.landley.net
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to