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... ;)

Reply via email to