On Nov 10 18:15:44, h...@stare.cz 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

Reply via email to