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.
# Ncursew
Posté par Ph Husson (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.