Lines Matching refs:tf

51 static int tfqueue(struct tailfile *tf);
52 static const struct timespec *tfreopen(struct tailfile *tf);
79 forward(struct tailfile *tf, int nfiles, enum STYLE style, off_t origoff) in forward() argument
97 printfname(tf[i].fname); in forward()
103 if (S_ISREG(tf[i].sb.st_mode)) { in forward()
104 if (tf[i].sb.st_size < off) in forward()
105 off = tf[i].sb.st_size; in forward()
106 if (fseeko(tf[i].fp, off, SEEK_SET) == -1) { in forward()
107 ierr(tf[i].fname); in forward()
111 if ((ch = getc(tf[i].fp)) == EOF) { in forward()
112 if (ferror(tf[i].fp)) { in forward()
113 ierr(tf[i].fname); in forward()
123 if ((ch = getc(tf[i].fp)) == EOF) { in forward()
124 if (ferror(tf[i].fp)) { in forward()
125 ierr(tf[i].fname); in forward()
135 if (S_ISREG(tf[i].sb.st_mode)) { in forward()
136 if (tf[i].sb.st_size >= off && in forward()
137 fseeko(tf[i].fp, -off, SEEK_END) == -1) { in forward()
138 ierr(tf[i].fname); in forward()
142 while (getc(tf[i].fp) != EOF) in forward()
144 if (ferror(tf[i].fp)) { in forward()
145 ierr(tf[i].fname); in forward()
149 if (bytes(&(tf[i]), off)) in forward()
154 if (S_ISREG(tf[i].sb.st_mode)) { in forward()
156 if (fseeko(tf[i].fp, (off_t)0, in forward()
158 ierr(tf[i].fname); in forward()
161 } else if (rlines(&(tf[i]), off) != 0) in forward()
162 lines(&(tf[i]), off); in forward()
164 while (getc(tf[i].fp) != EOF) in forward()
166 if (ferror(tf[i].fp)) { in forward()
167 ierr(tf[i].fname); in forward()
171 if (lines(&(tf[i]), off)) in forward()
179 tfprint(tf[i].fp); in forward()
180 if (fflag && tfqueue(&(tf[i])) == -1) in forward()
181 warn("Unable to follow %s", tf[i].fname); in forward()
184 ltf = &(tf[i-1]); in forward()
241 rlines(struct tailfile *tf, off_t off) in rlines() argument
246 pos = tf->sb.st_size; in rlines()
258 if (fseeko(tf[0].fp, pos, SEEK_SET) == -1) { in rlines()
259 ierr(tf->fname); in rlines()
262 if ((ch = getc(tf[0].fp)) == '\n') in rlines()
265 if (ferror(tf[0].fp)) { in rlines()
266 ierr(tf->fname); in rlines()
273 if (pos < 0 && off > 0 && ch != EOF && ungetc(ch, tf[0].fp) == EOF) { in rlines()
274 ierr(tf->fname); in rlines()
278 while (!feof(tf[0].fp) && (ch = getc(tf[0].fp)) != EOF) in rlines()
281 if (ferror(tf[0].fp)) { in rlines()
282 ierr(tf->fname); in rlines()
300 tfqueue(struct tailfile *tf) in tfqueue() argument
310 EV_SET(&(ke[0]), fileno(tf->fp), EVFILT_READ, in tfqueue()
311 EV_ENABLE | EV_ADD | EV_CLEAR, 0, 0, tf); in tfqueue()
313 if (S_ISREG(tf->sb.st_mode)) { in tfqueue()
315 EV_SET(&(ke[1]), fileno(tf->fp), EVFILT_VNODE, in tfqueue()
318 0, tf); in tfqueue()
321 ierr(tf->fname); in tfqueue()
329 tfreopen(struct tailfile *tf) { in tfreopen() argument
338 if (tf && !(tf->fp == stdin) && in tfreopen()
339 ((stat(tf->fname, &sb) != 0) || sb.st_ino != tf->sb.st_ino)) { in tfreopen()
350 if (strcmp(reopen[i]->fname, tf->fname) == 0) in tfreopen()
355 reopen[nfiles-1] = tf; in tfreopen()
357 warnx("Lost track of %s", tf->fname); in tfreopen()