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

[POSIX et LOCALES] Symboles liés et classes d'équivalence



Salut les Free French,

Quelques mots pour expliquer le sujet, qui risque de paraître byzantin.

J'avais dans l'idée de programmer un utilitaire permettant de faire une
recherche d'expression régulière dans différents fichiers, pour le SDF
(en prélude à l'immense Modele qui verra le jour d'ici une centaine
d'années si tout va bien). En gros : un moteur de recherche pour le SDF.
Vous me direz, c'est pas la peine, il y a le choix : pourquoi pas httdig
par exemple ?

Pour la raison suivante. Plutôt que de faire une recherche brute de
décoffrage, j'avais imaginé procéder ainsi :

- supposons que j'aie des fichiers dans des formats différents, certains
  avec des Ç, é, Ê et tutti quanti, d'autres avec des Ç etc,
  certains avec \'e, \c c, etc...
- plutôt que de lancer une recherche en multipliant les motifs, je
  traduis le motif en ASCII minuscules : 
  Ç -> c
  ß -> ss (si allemand sélectionné)
  \c C -> c
  etc...

  et je convertis aussi le flux d'entrée en minuscules ASCII. Si il y a
  un bingo, alors seulement je tente de vérifier si cela s'accorde
  exactement à ce qui a été demandé (si le fléau d'utilisateur exige
  seulement un texte en HTML ou que sais-je).

Bon, le programme de François Pinard, `recode' doit faire quelque chose
comme cela (pas vérifié). Mais voilà que je tombe dans le manuel info de
gawk sur la mention des "Collating symbols" (a +e donne æ) et des
"Equivalence Classes" ( ç donne c) : bref, tout ce qu'il me faut.

Bien sûr, cela ne fait pas partie de la glibc. Par contre, il semblerait
que cela soit POSIX.

Est-ce que quelqu'un aurait des pointeurs sur de la doc POSIX concernant
la chose, ou sur des groupes travaillant pour l'implémenter dans le
monde libre, histoire que j'évite de réinventer la roue ;), et surtout
que je définisse mes tables de correspondances en conformité avec une
éventuelle spécification POSIX.

TIA
-- 
Thierry LARONDE <thierry.laronde@polynum.com>
10, rue du Bel Air, 74000 ANNECY - FRANCE/ Tel : 33.(0)4.50.67.46.61
/home du SDF (Site Debian Francophone) : http://www.polynum.com/sdf/



Reply to: