diff options
Diffstat (limited to 'contrib/keypad.enable')
-rw-r--r-- | contrib/keypad.enable/ReadMe | 7 | ||||
-rw-r--r-- | contrib/keypad.enable/keypad.enable.diff | 122 |
2 files changed, 129 insertions, 0 deletions
diff --git a/contrib/keypad.enable/ReadMe b/contrib/keypad.enable/ReadMe new file mode 100644 index 00000000..927519ce --- /dev/null +++ b/contrib/keypad.enable/ReadMe @@ -0,0 +1,7 @@ +These context diffs when applied to pico/tcap.c enable entrance +and exit of "keypad mode". This mode is especially useful (and +necessary!) for HP terminals which require this mode to make the +arrow keys useful. + +These changes are based on a bug report submitted by Jochiam Richter +(zjr@rz.uni-jena.de). diff --git a/contrib/keypad.enable/keypad.enable.diff b/contrib/keypad.enable/keypad.enable.diff new file mode 100644 index 00000000..80643f0d --- /dev/null +++ b/contrib/keypad.enable/keypad.enable.diff @@ -0,0 +1,122 @@ +*** pine/ttyout.c.REAL Thu Dec 21 02:08:20 1995 +--- pine/ttyout.c Sat Feb 10 15:47:12 1996 +*************** +*** 131,137 **** + *_startinsert, *_endinsert, *_insertchar, *_deletechar, + *_deleteline, *_insertline, + *_scrollregion, *_scrollup, *_scrolldown, +! *_termcap_init, *_termcap_end; + char term_name[40]; + #ifndef USE_TERMINFO + static char _terminal[1024]; /* Storage for terminal entry */ +--- 131,138 ---- + *_startinsert, *_endinsert, *_insertchar, *_deletechar, + *_deleteline, *_insertline, + *_scrollregion, *_scrollup, *_scrolldown, +! *_termcap_init, *_termcap_end, +! *_keypad_init, *_keypad_end; + char term_name[40]; + #ifndef USE_TERMINFO + static char _terminal[1024]; /* Storage for terminal entry */ +*************** +*** 228,233 **** +--- 229,236 ---- + _termcap_end = tigetstr("rmcup"); + _lines = tigetnum("lines"); + _columns = tigetnum("cols"); ++ _keypad_init = tigetnum("smkx"); ++ _keypad_end = tigetnum("rmkx"); + _ku = tigetstr("kcuu1"); + _kd = tigetstr("kcud1"); + _kl = tigetstr("kcub1"); +*************** +*** 295,300 **** +--- 298,305 ---- + _termcap_end = tgetstr("te", &ptr); + _lines = tgetnum("li"); + _columns = tgetnum("co"); ++ _keypad_init = tgetstr("ks", &ptr); ++ _keypad_end = tgetstr("ke", &ptr); + _ku = tgetstr("ku", &ptr); + _kd = tgetstr("kd", &ptr); + _kl = tgetstr("kl", &ptr); +*************** +*** 435,440 **** +--- 440,448 ---- + BeginScroll(0, ps_global->ttyo->screen_rows); + fflush(stdout); + } ++ ++ if(_keypad_init) ++ tputs(_keypad_init, 1, outchar); + } + + +*************** +*** 510,515 **** +--- 518,526 ---- + MoveCursor(_lines - 2, 0); + if(_termcap_end != NULL) + tputs(_termcap_end, 1, outchar); ++ ++ if(_keypad_end != NULL) ++ tputs(_keypad_end, 1, outchar); + + if(message){ + StartInverse(); +*** pico/tcap.c.REAL Thu Dec 21 01:54:35 1995 +--- pico/tcap.c Sat Feb 10 16:08:47 1996 +*************** +*** 92,98 **** + *SF, /* scroll text up */ + *SR, /* scroll text down */ + *TI, /* string to start termcap */ +! *TE; /* string to end termcap */ + + + TERM term = { +--- 92,100 ---- + *SF, /* scroll text up */ + *SR, /* scroll text down */ + *TI, /* string to start termcap */ +! *TE, /* string to end termcap */ +! *KS, /* string to enter application keypad mode */ +! *KE; /* string to end application keypad mode */ + + + TERM term = { +*************** +*** 178,183 **** +--- 180,187 ---- + SR = tgetstr("sr", &p); + TI = tgetstr("ti", &p); + TE = tgetstr("te", &p); ++ KS = tgetstr("ks", &p); ++ KE = tgetstr("ke", &p); + + row = tgetnum("li"); + if(row == -1){ +*************** +*** 399,404 **** +--- 403,411 ---- + if (CS) + putpad(tgoto(CS, term.t_nrow, 0)) ; + } ++ ++ if(KS && !Pmaster) /* enter app/keypad mode (cursor) */ ++ putpad(KS); + } + + +*************** +*** 410,415 **** +--- 417,425 ---- + + if(TE) /* any cleanup termcap requires */ + putpad(TE); ++ ++ if(KE) ++ putpad(KE); /* end app/keypad mode */ + } + + kbdestroy(pico_kbesc); /* clean up key board sequence trie */ |