Hi Michael, On 1/8/21 2:17 PM, Michael Kerrisk (man-pages) wrote: > [CC += Bruno] > > Hi Alex, > > On 1/8/21 2:05 PM, Alejandro Colomar (man-pages) wrote: >> Hi Michael, >> >> On 1/8/21 1:45 PM, Michael Kerrisk (man-pages) wrote: >>> 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? >> >> About the three lines (a) (b) (c) as a whole, yes, I understand that part. >> About [strcoll(3), wcscoll(3) or strxfrm(3), wcsxfrm(3)], nope, I still >> can't understand the punctuation there. >> So I can't parse the inner contents of (c). > > Ah sorry. Now I see what you mean. I'm not sure of this, but I suspect > that it's supposed to mean: > > Use [strcoll(3)+strxfrm(3)] for non-wide-char strings and > [wcscoll(3)+wcsxfrm(3)] for wide char strings. > > Maybe Bruno can help. Yes, that was my first thought (after a few trials), but I preferred to check with you :) I don't know how to express it. Maybe [A and B, or C and D]? Thanks, Alex > > Thanks, > > Michael > -- Alejandro Colomar Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/