=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tail/tail.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- src/usr.bin/tail/tail.c 2008/10/17 11:38:20 1.15 +++ src/usr.bin/tail/tail.c 2008/11/13 18:33:03 1.16 @@ -1,4 +1,4 @@ -/* $OpenBSD: tail.c,v 1.15 2008/10/17 11:38:20 landry Exp $ */ +/* $OpenBSD: tail.c,v 1.16 2008/11/13 18:33:03 landry Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -42,7 +42,7 @@ #if 0 static char sccsid[] = "@(#)tail.c 8.1 (Berkeley) 6/6/93"; #endif -static char rcsid[] = "$OpenBSD: tail.c,v 1.15 2008/10/17 11:38:20 landry Exp $"; +static char rcsid[] = "$OpenBSD: tail.c,v 1.16 2008/11/13 18:33:03 landry Exp $"; #endif /* not lint */ #include @@ -132,6 +132,10 @@ } argc -= optind; argv += optind; + + if (fflag && argc > 1) + errx(1, "-f option only appropriate for a single file"); + /* * If displaying in reverse, don't permit follow option, and convert * style values. @@ -158,33 +162,27 @@ style = RLINES; } } - - if (*argv) { - if (fflag) { - follow(argv, argc, style, off); - } - else { - for (first = 1; (fname = *argv++);) { - if ((fp = fopen(fname, "r")) == NULL || - fstat(fileno(fp), &sb)) { - ierr(); - continue; - } - if (argc > 1) { - (void)printf("%s==> %s <==\n", - first ? "" : "\n", fname); - first = 0; - (void)fflush(stdout); - } - if (rflag) - reverse(fp, style, off, &sb); - else - forward(fp, style, off, &sb); - (void)fclose(fp); + if (*argv) + for (first = 1; (fname = *argv++);) { + if ((fp = fopen(fname, "r")) == NULL || + fstat(fileno(fp), &sb)) { + ierr(); + continue; } + if (argc > 1) { + (void)printf("%s==> %s <==\n", + first ? "" : "\n", fname); + first = 0; + (void)fflush(stdout); + } + + if (rflag) + reverse(fp, style, off, &sb); + else + forward(fp, style, off, &sb); + (void)fclose(fp); } - } else { fname = "stdin"; is_stdin = 1;