On Fri, 16 Aug 2024 at 10:37, Corinna Vinschen via austin-group-l at The Open Group <austin-group-l@opengroup.org> wrote: > > On Aug 16 16:53, Thomas Munro via austin-group-l at The Open Group wrote: > > Hello, > > > > I am aware of two thread-safe localeconv() alternatives in the wild: > > > > 1. glibc has nl_langinfo_l(DECIMAL_POINT, loc) for > > localeconv()->decimal_point, and so on for every member of struct > > lconv. > > nl_langinfo_l is also implemented in newlib and thus Cygwin since 2016.
nl_langinfo_l is in POSIX, but glibc adds constants like DECIMAL_POINT for all the lconv members. Those aren't required by POSIX, and don't seem to be present in newlib. https://www.gnu.org/software/libc/manual/html_node/The-Elegant-and-Fast-Way.html lists the glibc constants in <langinfo.h>, which includes many extensions.