X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/335e9f60efd4a3d58fc75278e9ae1b56474cb862..483a2fe00ba4de6d1f0b6312c17809ac108e474c:/usr/src/usr.bin/tn3270/sys_curses/termout.c?ds=inline diff --git a/usr/src/usr.bin/tn3270/sys_curses/termout.c b/usr/src/usr.bin/tn3270/sys_curses/termout.c index db1ba6a321..d7bfa91c69 100644 --- a/usr/src/usr.bin/tn3270/sys_curses/termout.c +++ b/usr/src/usr.bin/tn3270/sys_curses/termout.c @@ -31,21 +31,24 @@ static char sccsid[] = "@(#)outbound.c 3.1 10/29/86"; #include #include -#include "../general.h" +#include "../general/general.h" #include "terminal.h" #include "../telnet.ext" +#include "../apilib/disp_asc.h" + #include "../ctlr/hostctlr.h" #include "../ctlr/inbound.ext" +#include "../ctlr/oia.h" #include "../ctlr/options.ext" #include "../ctlr/outbound.ext" #include "../ctlr/screen.h" -#include "../keyboard/map3270.ext" +#include "../ascii/map3270.ext" -#include "../system/globals.h" +#include "../general/globals.h" extern void EmptyTerminal(); @@ -56,10 +59,8 @@ extern void EmptyTerminal(); static int terminalCursorAddress; /* where the cursor is on term */ static int screenInitd; /* the screen has been initialized */ static int screenStopped; /* the screen has been stopped */ -#if defined(SLOWSCREEN) static int max_changes_before_poll; /* how many characters before looking */ /* at terminal and net again */ -#endif /* defined(SLOWSCREEN) */ static int needToRing; /* need to ring terinal bell */ static char *bellSequence = "\07"; /* bell sequence (may be replaced by @@ -73,10 +74,8 @@ static char *KS, *KE; #endif /* defined(unix) */ -#if defined(SLOWSCREEN) static int inHighlightMode = 0; ScreenImage Terminal[MAXSCREENSIZE]; -#endif /* defined(SLOWSCREEN) */ /* Variables for transparent mode */ #if defined(unix) @@ -84,10 +83,6 @@ static int tcflag = -1; /* transparent mode command flag */ static int savefd[2]; /* for storing fds during transcom */ extern int tin, tout; /* file descriptors */ #endif /* defined(unix) */ - - -#include "disp_asc.out" - /* @@ -100,10 +95,8 @@ void init_screen() { bellwinup = 0; -#if defined(SLOWSCREEN) inHighlightMode = 0; ClearArray(Terminal); -#endif /* defined(SLOWSCREEN) */ } @@ -147,7 +140,6 @@ int where; /* cursor address */ /* NOTREACHED */ } -#if defined(SLOWSCREEN) /* What is the screen address of the attribute byte for the terminal */ static int @@ -167,7 +159,6 @@ register int p; return(LowestScreen()); /* unformatted screen... */ } -#endif /* defined(SLOWSCREEN) */ /* * There are two algorithms for updating the screen. @@ -187,7 +178,6 @@ register int p; */ -#if defined(SLOWSCREEN) #if defined(NOT43) static int #else /* defined(NOT43) */ @@ -335,8 +325,8 @@ SlowScreen() columnsleft = NumberColumns; } SetHighlightMode(pointer); /* Turn on highlighting */ - while (!IsStartField(pointer) && - !TermIsStartField(pointer)) { + while ((!IsStartField(pointer)) && + (!TermIsStartField(pointer))) { c = GetHost(pointer); DoCharacterAt(c,pointer); /* MACRO */ pointer = ScreenInc(pointer); @@ -383,6 +373,10 @@ SlowScreen() * the end of the screen. */ if (j > pointer) { + /* + * pointer is guaranteed to be higher than Highest... + */ + pointer = Highest+1; /* We did the highest thing */ break; } } else { @@ -441,7 +435,6 @@ SlowScreen() EmptyTerminal(); /* move data along */ return; } -#endif /* defined(SLOWSCREEN) */ #if defined(NOT43) static int @@ -498,7 +491,8 @@ FastScreen() FastScreen(); /* Recurse */ return; } else if (fieldattr) { /* Should we display? */ - addch(disp_asc[p->data]); /* Display translated data */ + /* Display translated data */ + addch(disp_asc[GetTerminalPointer(p)]); } else { addch(' '); /* Display a blank */ } @@ -540,7 +534,7 @@ FastScreen() } else { if (fieldattr) { /* Should we display? */ /* Display translated data */ - *tmp++ = disp_asc[p->data]; + *tmp++ = disp_asc[GetTerminalPointer(p)]; } else { *tmp++ = ' '; } @@ -593,6 +587,13 @@ void #endif /* defined(NOT43) */ (*TryToSend)() = FastScreen; +void +ScreenOIA(oia) +OIA *oia; +{ +} + + /* InitTerminal - called to initialize the screen, etc. */ void @@ -613,16 +614,14 @@ InitTerminal() extern char *tgetstr(); #endif /* defined(unix) */ -#if defined(SLOWSCREEN) ClearArray(Terminal); -#endif /* defined(SLOWSCREEN) */ terminalCursorAddress = SetBufferAddress(0,0); #if defined(unix) signal(SIGHUP, abort); #endif TryToSend = FastScreen; -#if defined(unix) && defined(SLOWSCREEN) +#if defined(unix) ioctl(1, TIOCGETP, (char *) &ourttyb); if ((ourttyb.sg_ospeed < 0) || (ourttyb.sg_ospeed > B9600)) { max_changes_before_poll = 1920; @@ -634,7 +633,7 @@ InitTerminal() TryToSend = SlowScreen; HaveInput = 1; /* get signals going */ } -#endif /* defined(unix) && defined(SLOWSCREEN) */ +#endif /* defined(unix) */ setcommandmode(); /* * By now, initscr() (in curses) has been called (from telnet.c), @@ -666,7 +665,6 @@ InitTerminal() screenInitd = 1; screenStopped = 0; /* Not stopped */ } - Initialized = 1; } @@ -679,9 +677,7 @@ int doNewLine; if (screenInitd && !screenStopped) { move(NumberLines-1, 1); standend(); -#if defined(SLOWSCREEN) inHighlightMode = 0; -#endif /* defined(SLOWSCREEN) */ DoARefresh(); setcommandmode(); endwin(); @@ -734,9 +730,7 @@ LocalClearScreen() { outputPurge(); /* flush all data to terminal */ clear(); /* clear in curses */ -#if defined(SLOWSCREEN) ClearArray(Terminal); -#endif /* defined(SLOWSCREEN) */ Clear3270(); Lowest = HighestScreen()+1; /* everything in sync... */ Highest = LowestScreen()+1; @@ -750,11 +744,6 @@ BellOff() delwin(bellwin); bellwin = 0; bellwinup = 0; - Lowest = MIN(Lowest, LINES/2); - Highest = MAX(Highest, (LINES/2)+3); -#if defined(SLOWSCREEN) - memset(Terminal+LINES/2, 0, (sizeof Terminal[0])*(3*COLS)); -#endif /* defined(SLOWSCREEN) */ touchwin(stdscr); DoARefresh(); } @@ -804,7 +793,7 @@ int DoTerminalOutput() { /* called just before a select to conserve IO to terminal */ - if (!Initialized) { + if (!(screenInitd||screenStopped)) { return 1; /* No output if not initialized */ } if ((Lowest <= Highest) || needToRing ||