bonjour
j'utilise les ncurses pour gerer l'edition de line:
jai un raw(), activee le keypad(stdscr, TRUE) afin de recuperer facilement les valeur des touche tel que KEY_UP, KEY_F(1), KEY_BACKSPACE...
je recupere la valeur de la touche tape avec un c = getch().
et jaffiche le caractere si ce n'est pas un signal tel que CRT+C ou autre.
si je simplifi mon code ca fais:
c = 0;
while (c != '\n')
{
c = getch();
if (c == KEY_UP)
move(y - 1, x);
else if (c >= 32 && c <= 126)
addch(c);
}
le probleme cest que certaine touche tel que SHIFT+F1 sont une suite de caractere (27+91+49+59+50+80) du coup, le 27 il le zap avec ma condition mais il affiches les autres caractere "[1;2P" non souhaite.
Dans le ncurses.h je n'ai pas trouve de define corespondant a cette touche.
(ya une solution en creant un buffer et le remplir a chaque tour de boucle afin de verifier si la chaine correspond, mais cest assez lourd, et nombreuse sont les posibilite commencant par 27+91+..)
Ya t-il un moyen simple de gerer ce probleme?
un man particulier?
Merci d'avoir lu.
Partager