[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: commande 'sort' et la localisation...



[Après la bataille...]

On Thu, Dec 29, 2005 at 07:42:15PM +0100, Denis Barbier wrote:
> A priori c'est le 2e que l'on veut, c'est pourquoi utiliser LC_COLLATE
> pour ls est judicieux. Idem pour les majuscules, on préfère
>      Aalto anneaux lune Lyre tmp
> à
>      Aalto Lyre anneaux lune tmp

Personnellement, je ne suis pas d'accord avec ça. Dans la
vieille tradition Unix, on écrit README, INSTALL, etc en
majuscule pour qu'ils apparaissent en premier dans la sortie
de ls.

De même que les problèmes de Jacques (d'après ce que j'ai
compris vu de loin) sont dus à son utilisation de commandes
et de scripts Unix conçus avant que les commandes ne
commencent à changer de comportement quand on leur change
leur locale.

> Honnêtement, je ne vois pas de solution qui soit intuitive pour tous
> ces cas de figure, c'est pourquoi il faudrait toujours utiliser
> les regexps en locale C. Pour reprendre ton exemple :
>   LC_ALL=C mv -v [a-lA-L]* tmp

J'aurais tendance à dire que si on change la sémantique
d'une commande (comme il se passe ici en changeant les
locales) il faudrait en fait changer le nom de la commande.
Ça me rappelle un peu le débat qu'il y a eu il y a quelques
années sur le remplacement de 'rm' par une commande qui
déplace les fichiers dans une poubelle. Vouloir une telle
commande est justifié, mais comme elle a une sémantique
différente, elle devrait avoir un nom différent. De même, mv
avait une sémantique précise et indépendante du pays. Il
aurait mieux valu créer un ensemble de commandes localisées
(lrm, lls, lmv...?) et ne pas changer la sémantique des
commandes traditionnelles.

Ce qui se passe avec les locales sur les commandes
traditionnelles revient en fait à changer une API, dont
certains programmeurs ont tendance à dire que c'est pas 
bien :)

Y. - mouche du coche



Reply to: