summaryrefslogtreecommitdiff
path: root/contrib/keypad.enable
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/keypad.enable')
-rw-r--r--contrib/keypad.enable/ReadMe7
-rw-r--r--contrib/keypad.enable/keypad.enable.diff122
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 */