version 1.19, 2004/03/01 16:35:05 |
version 1.20, 2004/03/12 19:40:05 |
|
|
{ |
{ |
int ch; |
int ch; |
struct stat nsb; |
struct stat nsb; |
int kq; |
int kq, queue; |
struct kevent ke; |
struct kevent ke; |
|
|
switch(style) { |
switch(style) { |
|
|
if (!fflag) |
if (!fflag) |
break; |
break; |
clearerr(fp); |
clearerr(fp); |
|
queue = 1; |
if (kq < 0 || kevent(kq, NULL, 0, &ke, 1, NULL) <= 0) { |
if (kq < 0 || kevent(kq, NULL, 0, &ke, 1, NULL) <= 0) { |
|
queue = 0; |
sleep(1); |
sleep(1); |
} else if (ke.filter == EVFILT_READ) { |
} else if (ke.filter == EVFILT_READ) { |
continue; |
continue; |
|
|
} |
} |
(void)memcpy(sbp, &nsb, sizeof(nsb)); |
(void)memcpy(sbp, &nsb, sizeof(nsb)); |
goto kq_retry; |
goto kq_retry; |
} else if (ke.fflags & NOTE_TRUNCATE) { |
} else if ((queue && (ke.fflags & NOTE_TRUNCATE)) || |
|
(!queue && nsb.st_size < sbp->st_size)) { |
warnx("%s has been truncated, resetting.", fname); |
warnx("%s has been truncated, resetting.", fname); |
fpurge(fp); |
fpurge(fp); |
rewind(fp); |
rewind(fp); |