NN doesn't initialize visual mode
Mikel Lechner
mikel at teraida.UUCP
Fri Jul 14 19:31:37 AEST 1989
I've installed NN on a sun4 and a Multiflow Trace (BSD4.3 Unix),
and have I like the system. However, it seems that NN does not
use the terminal capabilies "te" and "ti" of the termcap file.
These specify escape sequences to send to the terminal before
using the termcap interface to perform full screen I/O. The result
is that a SunView cmdtool window gets a garble window if you
try to run NN.
I installed a fix for this problem by setting up these capabilities,
and adding the functions "visual_on" and "visual_off". The "visual_on"
is invoked initially when starting up NN. and the "visual_off" is called
whenever NN is exited. Also, when NN is suspended, the "visual_off"
function is invoked, and then a "visual_on" is invoked when NN is
restarted. This is similar to the "raw_on" function.
This affects other terminal besides SunView cmdtools, so here are
my patches to fix this problem. This should be applied after patch level 4.
I hope that Kim Storm can include these patches in an upcoming official
NN patch.
*** onn.c Fri Jul 14 02:20:05 1989
--- nn.c Fri Jul 14 00:10:27 1989
***************
*** 294,299 ****
--- 294,300 ----
#endif /* NNTP */
close_master();
close_rc();
+ term_term();
exit(n);
}
*** oexecute.c Fri Jul 14 02:25:04 1989
--- execute.c Fri Jul 14 00:14:15 1989
***************
*** 125,135 ****
--- 125,137 ----
gotoxy(0, Lines-1);
clrline();
+ visual_off();
#ifdef HAVE_JOBCONTROL
kill(process_id, SIGTSTP);
#else
execute(user_shell, exec_suspend_args);
#endif
+ visual_on();
s_redraw++;
if (was_raw) raw();
*** oterm.c Fri Jul 14 02:26:51 1989
--- term.c Fri Jul 14 00:43:21 1989
***************
*** 48,53 ****
--- 48,54 ----
char *BC, *UP;
short ospeed;
+ static char begin_term[64], end_term[64];
static char XBC[64], XUP[64];
static char cursor_home[64];
static char cursor_address[64];
***************
*** 295,300 ****
--- 296,304 ----
opt_cap("kr", key_right);
opt_cap("kl", key_left);
+ opt_cap("ti", begin_term);
+ opt_cap("te", end_term);
+
cookie_size = tgetnum("sg");
WRAP = tgetflag("am");
***************
*** 349,354 ****
--- 353,376 ----
erase_key = EraseC;
kill_key = KillC;
+
+ visual_on();
+ }
+
+ term_term()
+ {
+ visual_off();
+ }
+
+ visual_on()
+ {
+ if (HAS_CAP(begin_term)) putp(begin_term);
+ }
+
+ visual_off()
+ {
+ if (HAS_CAP(end_term)) putp(end_term);
+ fl;
}
home()
----------------------------------------------------------------------
Mikel Lechner UUCP: ...!{decwrl,sun}!teraida!mikel
Teradyne EDA, Inc.
5155 Old Ironsides Drive
Santa Clara, Ca 95054
More information about the Comp.sources.bugs
mailing list