On Mon, Nov 15, 2021 at 03:43:47PM +0100, Jan Stary wrote: > Here's a try (see below); > one sentence one line while here. > > I would also replace 'results' with 'result' everywhere, > but I am not a native speaker. > > Jan > > > On Nov 10 18:46:08, [email protected] wrote: > > On Nov 10 18:15:44, [email protected] wrote: > > > expr(1) says > > > > > > expr1 {=, >, >=, <, <=, !=} expr2 > > > > > > Returns the results of integer comparison if both arguments > > > are decimal integers; otherwise, returns the results of > > > string comparison using the locale-specific collation > > > sequence. The result of each comparison is 1 if the specified > > > relation is true, or 0 if the relation is false. > > > > > > Looking at expr.c, it boils down to strcoll(), which ignores the locale. > > > So the statement is technically true, but there isn't really any > > > "locale-specific collation sequence". > > > > > > Would it be simpler to leave the mention of locale completely out? > > > Or state something similar to what sort(1) or strcoll(3) and other > > > string-comparing routines say? > > > > For example, > > > > $ expr č '<' d > > 0 > > > > Which locale-specific collation sequence determined that? > > Byte by byte, it's > > > > c48d U+00010d č LATIN SMALL LETTER C HACEK > > 64 U+000064 d LATIN SMALL LETTER D > > > > and I don't think there is anything more to it. > > (Although in the Czech alphabet, č comes just before d.) > > > > Jan
I don't know what Ingo et al plans wrt collation sequence are, but it is a relatively innocuous part of locales. More specifically, the ISO committee introduced functions specifically to deal with collation sequence, and left the original raw C functions (strcmp and the like) completely pristine... so what's missing is mostly an engine to compile location tables into something fairly reasonable. There is way less of a security risk than, say, LC_CTYPE... ;)
