On Fri, Aug 18, 2017 at 2:22 AM, Norbert Preining <prein...@logic.at> wrote: > Hi Luigi, > >> luatex exits if setlocale (LC_ALL, "") returns NULL, > > Indeed, that is what has happened in our case.
>From the manual """ If locale is an empty string, "", each part of the locale that should be modified is set according to the environment variables. The details are implementation-dependent. For glibc, first (regardless of category), the environment variable LC_ALL is inspected, next the environment variable with the same name as the category (see the table above), and finally the environment variable LANG. The first existing environment variable is used. If its value is not a valid locale specification, the locale is unchanged, and setlocale() returns NULL. """ If the locale from the environment is not a valid locale, I cannot set the values of lc_ctype, lc_collate, lc_numeric ie the values from the environment. > > Perl treats this with a warning and say: resetting to C, I know, luatex --luaonly does the same, but luatex is different from luatex --luaonly . >> of course we could force the locale to C, so that lc_type, lc_collate >> and lc_numeric always store "C" (pretty useless) but this can also > > Why? You *are* doing that anyway! So what is about "pretty useles"?> No, read the code, I don't set them: putenv(LC_CTYPE_C); putenv(LC_COLLATE_C); putenv(LC_NUMERIC_C); set the values of the env. variables to "C", but I don't touch the values of lc_type, lc_collate lc_numeric, which are the old values from the environment (in previous versions there was no easy way to have their values on the luatex side). > Where are the locales used? The user can use it, as shown in the example. To recap: nothing prevent , in case of an invalid locale, to set lc_type, lc_collate and lc_numeric to NULL or "C" or "" --- it doesn't matter, they are all wrong --- and go on (of course we can emit a warning, that nobody cares). But having a valid locale means that at least date and numbers are formatted in a predictable way, which is quite important for a pdf document; at least setting a locale to "C" or "POSIX" should work , but it is the user's responsibility to make the right choice. -- luigi