]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Include "error.h" instead of simply declaring `void error ();'.
authorJim Meyering <jim@meyering.net>
Fri, 16 Dec 1994 05:45:57 +0000 (05:45 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 16 Dec 1994 05:45:57 +0000 (05:45 +0000)
(main): Don't advance optarg past leading sign -- otherwise, we'd
be making tail accept invalid options like `-+1'.
(tail_file): Fix call to error with %s in format, but no corresponding argument.

src/tail.c

index a2025f3cee61565253d70e0c6037f7ec2179fcc7..a63329b7b8264409c86698733b69c801bc3c64d9 100644 (file)
@@ -55,6 +55,7 @@
 #include "system.h"
 #include "version.h"
 #include "xstrtol.h"
+#include "error.h"
 
 /* Disable assertions.  Some systems have broken assert macros.  */
 #define NDEBUG 1
@@ -106,7 +107,6 @@ enum header_mode
 };
 
 char *xmalloc ();
-void error ();
 int safe_read ();
 
 static int file_lines ();
@@ -249,13 +249,11 @@ main (argc, argv)
          if (*optarg == '+')
            {
              from_start = 1;
-             ++optarg;
            }
-         else if (*optarg == '-')
-           ++optarg;
 
-         /* FIXME: make sure tmp_long can't be negative.  */
          s_err = xstrtol (optarg, NULL, 0, &tmp_long, 1);
+         if (tmp_long < 0)
+           tmp_long = -tmp_long;
          n_units = tmp_long;
          if (s_err != LONGINT_OK)
            {
@@ -401,7 +399,8 @@ tail_file (filename, n_units, filenum)
                }
              else if (!S_ISREG (stats.st_mode))
                {
-                 error (0, 0, "%s: cannot follow end of non-regular file");
+                 error (0, 0, "%s: cannot follow end of non-regular file",
+                        filename);
                  errors = 1;
                }
              if (errors)