*** multilog.c.orig Sun Jul 29 09:16:42 2001 --- multilog.c Sun Jul 29 09:18:37 2001 *************** *** 177,184 **** --- 177,189 ---- sig_uncatch(sig_term); sig_uncatch(sig_alarm); + sig_uncatch(sig_hangup); + sig_uncatch(sig_int); + sig_unblock(sig_term); sig_unblock(sig_alarm); + sig_unblock(sig_hangup); + sig_unblock(sig_int); fd = open_read("previous"); if (fd == -1) return; *************** *** 434,439 **** --- 439,445 ---- int flagexitasap = 0; int flagforcerotate = 0; int flagnewline = 1; + int flaglog = 1; void exitasap(void) { *************** *** 445,450 **** --- 451,466 ---- flagforcerotate = 1; } + void logging(void) + { + flaglog = 1; + } + + void nologging(void) + { + flaglog = 0; + } + int flushread(int fd,char *buf,int len) { int j; *************** *** 466,479 **** --- 482,500 ---- sig_unblock(sig_term); sig_unblock(sig_alarm); + sig_unblock(sig_hangup); + sig_unblock(sig_int); len = read(fd,buf,len); sig_block(sig_term); sig_block(sig_alarm); + sig_block(sig_hangup); + sig_block(sig_int); if (len <= 0) return len; flagnewline = (buf[len - 1] == '\n'); + return len; } *************** *** 512,517 **** --- 533,539 ---- flageof = 1; break; } + if (!flaglog) continue; if (!linelen) if (flagtimestamp) { timestamp(line); *************** *** 579,587 **** } if (ch == '\n') break; ! for (j = 0;j < cnum;++j) ! if (c[j].flagselected) ! buffer_PUTC(&c[j].ss,ch); } for (j = 0;j < cnum;++j) --- 601,610 ---- } if (ch == '\n') break; ! if (flaglog) ! for (j = 0;j < cnum;++j) ! if (c[j].flagselected) ! buffer_PUTC(&c[j].ss,ch); } for (j = 0;j < cnum;++j) *************** *** 605,612 **** --- 628,640 ---- sig_block(sig_term); sig_block(sig_alarm); + sig_block(sig_hangup); + sig_block(sig_int); + sig_catch(sig_term,exitasap); sig_catch(sig_alarm,forcerotate); + sig_catch(sig_hangup,logging); + sig_catch(sig_int,nologging); ++argv; f_init(argv);