4.3BSD beta release manual page
[unix-history] / usr / src / old / lib2648 / outchar.c
CommitLineData
97e3edfb
DF
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
8static char sccsid[] = "@(#)outchar.c 5.1 (Berkeley) %G%";
9#endif not lint
f38ded87
RC
10
11#include "2648.h"
12
13outchar(c)
14char 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}