home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_09_01
/
9n01106a
< prev
next >
Wrap
Text File
|
1990-10-04
|
2KB
|
50 lines
buf[0] = '\0';
for (;;) {
if (rc == buf_size) {
memcpy(buf,buf+buf_size/2,buf_size/2);
rc = buf_size/2;
}
cc = i_read(stream,buf+rc,buf_size-rc,timeout);
if (cc == 0) { /* normal EOF */
eof = TRUE;
fclose(stream);
break;
} else if (cc == -1) { /* abnormal EOF */
if (i_read_errno == EBADF) {
tcl_error("bad spawn_id (process died earlier?)");
} else {
tcl_error("i_read(spawn_id=%d): %s",
stream,sys_errlist[errno]);
fclose(stream);
}
error = TRUE;
break;
} else if (cc == -2) break; /* timed out */
oldrc = rc;
rc += cc;
if (loguser) {
fwrite(buf+oldrc,1,cc,stdout);
fflush(stdout);
}
rc -= rm_nulls(&buf[oldrc],cc);
buf[rc] = '\0';
for (p=pairs;p<&pairs[pairs_inuse];p++) {
if (p->type == keyword) continue;
if (patternmatch(buf,p->pattern)) {
match = TRUE;
goto done;
}
}
}
Listing 8