|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: */ ! 6: ! 7: #ifndef lint ! 8: static char sccsid[] = "@(#)outchar.c 5.1 (Berkeley) 4/26/85"; ! 9: #endif not lint ! 10: ! 11: #include "2648.h" ! 12: ! 13: outchar(c) ! 14: char c; ! 15: { ! 16: extern int QUIET; ! 17: #ifdef TRACE ! 18: if (trace) ! 19: fprintf(trace, "%s", rdchar(c)); ! 20: #endif ! 21: if (QUIET) ! 22: return; ! 23: _outcount++; ! 24: putchar(c); ! 25: ! 26: /* Do 2648 ^E/^F handshake */ ! 27: if (_outcount > TBLKSIZ && _on2648) { ! 28: #ifdef TRACE ! 29: if (trace) ! 30: fprintf(trace, "ENQ .. "); ! 31: #endif ! 32: putchar(ENQ); ! 33: fflush(stdout); ! 34: c = getchar(); ! 35: while (c != ACK) { ! 36: if (_pb_front == NULL) { ! 37: _pb_front = _pushback; ! 38: _pb_back = _pb_front - 1; ! 39: } ! 40: *++_pb_back = c; ! 41: #ifdef TRACE ! 42: if (trace) ! 43: fprintf(trace, "push back %s, front=%d, back=%d, ", rdchar(c), _pb_front-_pushback, _pb_front-_pushback); ! 44: #endif ! 45: c = getchar(); ! 46: } ! 47: #ifdef TRACE ! 48: if (trace) ! 49: fprintf(trace, "ACK\n"); ! 50: #endif ! 51: _outcount = 0; ! 52: } ! 53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.