char ttyobuf
[2*BUFSIZ
], ttyibuf
[BUFSIZ
];
* initialize the terminal data structures.
ring_init(&ttyoring
, ttyobuf
, sizeof ttyobuf
);
ring_init(&ttyiring
, ttyibuf
, sizeof ttyibuf
);
autoflush
= TerminalAutoFlush();
* Send as much data as possible to the terminal.
* The return value indicates whether we did any
if ((n
= ring_full_consecutive(&ttyoring
)) > 0) {
/* we leave 'n' alone! */
n
= TerminalWrite(tout
, ttyoring
.consume
, n
);
ring_consumed(&ttyoring
, n
);
* Various signal handling routines.
#endif /* defined(unix) */
* These routines decides on what the mode should be (based on the values
* of various global variables).
static char newmode
[16] =
{ 4, 5, 3, 3, 2, 2, 1, 1, 6, 6, 6, 6, 6, 6, 6, 6 };
if (dontlecho
&& (clocks
.echotoggle
> clocks
.modenegotiated
)) {
if (hisopts
[TELOPT_ECHO
]) {
if (hisopts
[TELOPT_SGA
]) {
return newmode
[modeindex
];
TerminalNewMode(tin
, tout
, getconnmode());
TerminalNewMode(tin
, tout
, 0);