[linux-l] Bash-Bug??? Korrektur

Peter Ross Peter.Ross at alumni.tu-berlin.de
So Mai 30 14:39:49 CEST 2004


On Sun, 30 May 2004, Thomas Meyer wrote:

> Will sagen, dass die Angabe [a-z], [A-Z] nicht automatisch Kleinbuchstaben
> bzw. Grossbuchstaben umfasst, sondern einen Bereich des zugrundenliegenden
> Zeichensatzes angibt. Und der kann sich je nach eingestelltem Zeichnsatz
> ändern, besonders im Übergang vom 8-bit ASCII zu UTF.  Diese Verhalten
> kann durch Angabe von LC_COLLATE gesteuert werden (fragt mich nicht wie).

Das ist korrekt, aber es sollte auf keinen Fall ein solches Verhalten
Standard sein.

Das entspricht dadurch nicht annaehernd den "Ursprungsintentionen" der
Rangedefinition (die von der ASCII-Rangfolge ausgeht)

Aus utf8(5)

     It is backwards compatible
     with ASCII, so 0x00-0x7f refer to the ASCII character set.

Vielleicht komme ich morgen nochmal dazu, genauer in den Standards und
Implementationen zu wuehlen (heute, hier schon um 11 abends, bin ich zu
muede), aber irgendwie kann ich mir nicht vorstellen, dass jemand das so
abseits des "gesunden Menschenverstandes" gewollt haben koennte.

Es lohnt sich auch, einen Blick, auf die libc zu werfen, genauer gesagt
auf mklocale(1) und strcoll(3). Letzteres, der "localisierte"
Stringvergleich in der libc, sollte, wenn LC_COLLATE nicht definiert ist,
auf strcmp zurueckgreifen (und damit ANSII-kompatibel sein)

Ich habe nicht die entsprechende de*UTF8 locale auf meinem System, der
Blick in /usr/share/locale/$LANG/LC_COLLATE sollte Aufschluss ueber die
Rangfolge auf dem Testsystem geben.

Es gruesst
Peter



Mehr Informationen über die Mailingliste linux-l