projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add icmp statistics printing
[unix-history]
/
usr
/
src
/
usr.bin
/
tip
/
tipout.c
diff --git
a/usr/src/usr.bin/tip/tipout.c
b/usr/src/usr.bin/tip/tipout.c
index
c36bee6
..
77613ac
100644
(file)
--- a/
usr/src/usr.bin/tip/tipout.c
+++ b/
usr/src/usr.bin/tip/tipout.c
@@
-1,4
+1,4
@@
-/* tipout.c 4.
1 81/05/09
*/
+/* tipout.c 4.
6 82/01/06
*/
#include "tip.h"
/*
* tip
#include "tip.h"
/*
* tip
@@
-32,7
+32,7
@@
intEMT()
signal(SIGEMT, SIG_IGN);
read(fildes[0], &c, 1);
signal(SIGEMT, SIG_IGN);
read(fildes[0], &c, 1);
- while(c != '\n') {
+ while
(c != '\n') {
*pline++ = c;
read(fildes[0], &c, 1);
}
*pline++ = c;
read(fildes[0], &c, 1);
}
@@
-67,6
+67,7
@@
intSYS()
{
signal(SIGSYS, intSYS);
boolean(value(BEAUTIFY)) = !boolean(value(BEAUTIFY));
{
signal(SIGSYS, intSYS);
boolean(value(BEAUTIFY)) = !boolean(value(BEAUTIFY));
+ intflag = 1;
}
/*
}
/*
@@
-74,6
+75,10
@@
intSYS()
*/
tipout()
{
*/
tipout()
{
+ char buf[BUFSIZ];
+ register char *cp;
+ register int cnt;
+
signal(SIGINT, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGEMT, intEMT); /* attention from TIPIN */
signal(SIGINT, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGEMT, intEMT); /* attention from TIPIN */
@@
-82,18
+87,26
@@
tipout()
signal(SIGHUP, intTERM); /* for dial-ups */
signal(SIGSYS, intSYS); /* beautify toggle */
signal(SIGHUP, intTERM); /* for dial-ups */
signal(SIGSYS, intSYS); /* beautify toggle */
-
while(1
) {
+
for (;;
) {
do {
intflag = 0;
do {
intflag = 0;
- read(FD,&ch,1);
- ch &= 0177;
- } while(intflag);
- write(1, &ch, 1);
+ cnt = read(FD, buf, BUFSIZ);
+ } while (intflag);
+ if (cnt <= 0)
+ continue;
+ for (cp = buf; cp < buf + cnt; cp++)
+ *cp &= 0177;
+ write(1, buf, cnt);
if (boolean(value(SCRIPT)) && fscript != NULL) {
if (boolean(value(SCRIPT)) && fscript != NULL) {
- if (boolean(value(BEAUTIFY)) && ch < 040 &&
- !any(ch, value(EXCEPTIONS)))
+ if (!boolean(value(BEAUTIFY))) {
+ fwrite(buf, 1, cnt, fscript);
+ continue;
+ }
+ for (cp = buf; cp < buf + cnt; cp++) {
+ if (*cp < ' ' && !any(*cp, value(EXCEPTIONS)))
continue;
continue;
- putc(ch, fscript);
+ putc(*cp, fscript);
+ }
}
}
}
}
}
}