Retourner aux forums || Retourner au forum Programmation.c
Programmation.c : ncurses et unicode
Posté par abgech () le 26 décembre 2005
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 'lol'). 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é 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.
je suis un train de développer une application en C sous ncurses (eh oui, on peut très bien vivre sans environnement graphique 'lol'). 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é 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.
--
Il est démocratiquement impensable, qu'en république, il y ait trop de gens qui se foutent royalement de tout -- Pierre Dac
> Lire le message (1 commentaire, moyenne: 2).
Il est démocratiquement impensable, qu'en république, il y ait trop de gens qui se foutent royalement de tout -- Pierre Dac
Ncursew
Posté par
Ph Husson (page perso, ) le 26/12/2005 à 18:29. (lien). Évalué à 2.
Ncursesw ou ncursew enfin un truc en ncurse - bla - w qui gere l'unicode
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.