diff --git a/src/ingest.c b/src/ingest.c index 8ec9deb..e417ee2 100644 --- a/src/ingest.c +++ b/src/ingest.c @@ -33,6 +33,13 @@ static int read_cmd_page(const char *home_dir, int idx); static void update_cmd_pg_status(void); static void inter_command_wait(void); +#ifndef KEY_CUP +# define KEY_CUP (566) +#endif +#ifndef KEY_CDOWN +# define KEY_CDOWN (525) +#endif + int ingest_start(bytenuts_t *bytenuts) { @@ -46,6 +53,12 @@ ingest_start(bytenuts_t *bytenuts) ingest.cmd_pg_cur = -1; ingest.xmodem_hist = bstr_history_create(); + /* ensure character sequences work in all terminals */ + define_key("\033[1;5A", KEY_CUP); + define_key("\033[1;5B", KEY_CDOWN); + define_key("\033[1;2H", KEY_SHOME); + define_key("\033[1;2F", KEY_SEND); + HOME = getenv("HOME"); if (HOME) { int idx = 0; @@ -801,10 +814,10 @@ handle_functions(int ch) case KEY_SEND: /* go to front of log */ cheerios_gofwd(-1); return 1; - case 566: /* ctrl + up arrow */ + case KEY_CUP: /* ctrl + up arrow */ cheerios_goback(1); return 1; - case 525: /* ctrl + down arrow */ + case KEY_CDOWN: /* ctrl + down arrow */ cheerios_gofwd(1); return 1; case KEY_RESIZE: