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