Ich teste ein ncurses-Programm, das unter ncurses5 ausgeführt wurde, aber kürzlich unter curses6 in einer neuen Umgebung (putty/xterm/virtualbox) kompiliert wurde und keine Funktionsschlüssel erkennen kann. Die Pfeiltasten funktionieren gut, aber nur die, die eine Escape-Sequenz verwenden, scheinen fehlzuschlagen.Ncurses Funktionstasten gibt nur escape zurück
Drücken von F1 gibt "c = 27" zurück. Ich benutze Putty und versuchte verschiedene Einstellungen mit TERM auf xterm eingestellt. Außerhalb von Flüchen gibt F1 \ EOP wie erwartet zurück, und ich verwende TERM = xterm, das scheinbar den Funktionsschlüssel in termcap definiert. Ich verstehe, dass die Routine keypad() die getch/wgetch-Routinen veranlassen soll, den numerischen Schlüssel äquivalent zu 265 KEY_F (1) zurückzugeben, aber ich kann nichts außer 27 mit verschiedenen Kombinationen von break, raw, notimeout usw. erhalten.
Ja, ich habe die Xterm-Einstellungen überprüft und überprüft, ob meine Funktionstasten die richtige Escape-Sequenz zurückgeben. Der TERM wird ebenfalls auf xterm gesetzt. Das Problem ist, dass ncurses immer noch nur das erste Zeichen (ESC) liest, obwohl ich die keypad() -Routine verwende, die wgetchar() anweisen soll, einen numerischen Wert von 265 anstelle der tatsächlichen Escape-Sequenz zurückzugeben, aber nicht . – AJJ
Es ist wahrscheinlich kein Fehler in Ncurses, aber S/O ist nicht gut für den Dialog geeignet. Versuchen Sie [bug-ncurses] (https://invisible-island.net/ncurses/ncurses.faq.html#how_to_report). –