Date: Sun, 9 Jun 2013 08:06:26 +0000 (UTC) From: Jaakko Heinonen <jh@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r251565 - head/usr.bin/tail Message-ID: <201306090806.r5986QRl019421@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jh Date: Sun Jun 9 08:06:26 2013 New Revision: 251565 URL: http://svnweb.freebsd.org/changeset/base/251565 Log: Print file names without stdio buffering to avoid mixing buffered and unbuffered ouput. PR: bin/176886 Reviewed by: mjg Modified: head/usr.bin/tail/extern.h head/usr.bin/tail/forward.c head/usr.bin/tail/misc.c head/usr.bin/tail/tail.c Modified: head/usr.bin/tail/extern.h ============================================================================== --- head/usr.bin/tail/extern.h Sun Jun 9 07:15:43 2013 (r251564) +++ head/usr.bin/tail/extern.h Sun Jun 9 08:06:26 2013 (r251565) @@ -67,5 +67,6 @@ void ierr(const char *); void oerr(void); int mapprint(struct mapinfo *, off_t, off_t); int maparound(struct mapinfo *, off_t); +void printfn(const char *, int); extern int Fflag, fflag, qflag, rflag, rval, no_files; Modified: head/usr.bin/tail/forward.c ============================================================================== --- head/usr.bin/tail/forward.c Sun Jun 9 07:15:43 2013 (r251564) +++ head/usr.bin/tail/forward.c Sun Jun 9 08:06:26 2013 (r251565) @@ -243,7 +243,7 @@ show(file_info_t *file) while ((ch = getc(file->fp)) != EOF) { if (last != file && no_files > 1) { if (!qflag) - (void)printf("\n==> %s <==\n", file->file_name); + printfn(file->file_name, 1); last = file; } if (putchar(ch) == EOF) @@ -320,7 +320,7 @@ follow(file_info_t *files, enum STYLE st active = 1; n++; if (no_files > 1 && !qflag) - (void)printf("\n==> %s <==\n", file->file_name); + printfn(file->file_name, 1); forward(file->fp, file->file_name, style, off, &file->st); if (Fflag && fileno(file->fp) != STDIN_FILENO) n++; Modified: head/usr.bin/tail/misc.c ============================================================================== --- head/usr.bin/tail/misc.c Sun Jun 9 07:15:43 2013 (r251564) +++ head/usr.bin/tail/misc.c Sun Jun 9 08:06:26 2013 (r251565) @@ -113,3 +113,17 @@ maparound(struct mapinfo *mip, off_t off return (0); } + +/* + * Print the file name without stdio buffering. + */ +void +printfn(const char *fn, int print_nl) +{ + + if (print_nl) + WR("\n", 1); + WR("==> ", 4); + WR(fn, strlen(fn)); + WR(" <==\n", 5); +} Modified: head/usr.bin/tail/tail.c ============================================================================== --- head/usr.bin/tail/tail.c Sun Jun 9 07:15:43 2013 (r251564) +++ head/usr.bin/tail/tail.c Sun Jun 9 08:06:26 2013 (r251565) @@ -203,10 +203,8 @@ main(int argc, char *argv[]) continue; } if (argc > 1 && !qflag) { - (void)printf("%s==> %s <==\n", - first ? "" : "\n", fn); + printfn(fn, !first); first = 0; - (void)fflush(stdout); } if (rflag)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306090806.r5986QRl019421>