On 1/8/21 12:41 PM, Alejandro Colomar (man-pages) wrote: > Hi Michael, > > On 1/8/21 10:26 AM, Michael Kerrisk (man-pages) wrote: >> 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? > > Much better. > > But I still don't get why [A, B or C, D]. What does it mean? I don't read it that way. I see it as: [A and (B and/or C and/or D]. Do you see what I mean? Thanks, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/