Hi Alex, On 1/7/21 7:32 PM, Alejandro Colomar (man-pages) wrote: > Hi Michael, > > I don't understand what this paragraph means, I think it needs some wfix. > > Around setlocale.3:179: > [ > On startup of the main program, the portable "C" locale is > selected as default. A program may be made portable to all > locales by calling: > > setlocale(LC_ALL, ""); > > after program initialization, by using the values returned > from a localeconv(3) call for locale-dependent information, > by using the multibyte and wide character functions for text > processing if MB_CUR_MAX > 1, and by using strcoll(3), wc‐ > scoll(3) or strxfrm(3), wcsxfrm(3) to compare strings. > > <<<Especially these last 2 lines > > ] I see what you mean. I had to read that a few times to parse it. It looks like the text was added in 1999. I think the following clarifies and preserves the meaning: [[ On startup of the main program, the portable "C" locale is select‐ ed as default. A program may be made portable to all locales by calling: setlocale(LC_ALL, ""); after program initialization, and then: (a) using the values returned from a localeconv(3) call for lo‐ cale-dependent information; (c) using the multibyte and wide character functions for text pro‐ cessing if MB_CUR_MAX > 1; and (c) using strcoll(3), wcscoll(3) or strxfrm(3), wcsxfrm(3) to com‐ pare strings. ]] What do you think? Thanks, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/