Bonjour à tous.
je suis un train de développer une application en C sous ncurses (eh oui, on peut très bien vivre sans environnement graphique :-)). Cette application doit tourner dans plusieurs pays je compte donc utiliser unicode.
Mais je tombe sur un petit problème: les noms symboliques des touches spéciales sous ncurses (KEY_DOWN, KEY_UP, KEY_F(n), etc.) sont affectés aux nombres allant de 0x100 à 0x1FF. Pour unicode, cela tombe dans Latin Extended-A et une partie de Latin Extended-B (c'est à dire, entre autres, les langues slaves s'écrivant en caractères latins).
Je ne vois pas trop comment sortir de l'ambiguïté. J'ai bien une solution, amha pas trop élégante, voire lourdingue, qui consiste à récupérer (dans un module traitant de la saisie clavier), avant toute conversion d'utf-8 en ucs, les valeurs symboliques et de les rendre négatives pour les mettre dans un wchar_t, les autres valeurs étant converties en un wchar_t ucs.
Dans l'application proprement dite, un caractère ayant une valeur négative est considéré comme représentant un nom symbolique de touche est traité en conséquence.
Voilà, si quelqu'un à une meilleure idée, il est prié de ne pas se gêner. Merci d'avance.
..................
Parce qu'il avait une clôture à utiliser, l'homme invente la propriété privée. --- F. Cavanna
Poste le Monday 26 December 2005 19:29:38