@@ -1537,13 +1537,13 @@ int main(int ac, char **av)
/* Initialize curses */
initscr();
- /* set color theme */
- set_colors();
-
cbreak();
noecho();
keypad(stdscr, TRUE);
curs_set(0);
+ /* set color theme */
+ set_colors();
+
if (COLS < 75 || LINES < 20) {
endwin();
@@ -1552,6 +1552,23 @@ int main(int ac, char **av)
return 1;
}
+ const char *term = getenv("TERM");
+ if (strcmp(term, "xterm") == 0 ||
+ strcmp(term, "xterm-color") == 0 ||
+ strcmp(term, "vt220") == 0) {
+ define_key("\033[H", KEY_HOME);
+ define_key("\033[F", KEY_END);
+ define_key("\033OP", KEY_F(1));
+ define_key("\033OQ", KEY_F(2));
+ define_key("\033OR", KEY_F(3));
+ define_key("\033OS", KEY_F(4));
+ define_key("\033[16~", KEY_F(5));
+ define_key("\033[17~", KEY_F(6));
+ define_key("\033[18~", KEY_F(7));
+ define_key("\033[19~", KEY_F(8));
+ define_key("\033[20~", KEY_F(9));
+ }
+
notimeout(stdscr, FALSE);
ESCDELAY = 1;