On Thu, 2021-09-02 at 08:56 +0000, Job Snijders wrote:
> On Thu, Sep 02, 2021 at 07:23:26AM +0100, Jason McIntyre wrote:
> > >  .Ar time
> > > -can be integer or decimal numbers.
> > > +are positive integer or real (decimal) numbers, with an optional
> > 
> > can you have a negative timeout?
> 
> Negative values are not permitted
> 
> $ timeout -- -1 /bin/ls
> timeout: invalid duration: Undefined error: 0
> 
> Kind regards,
> 
> Job
> 
There are a few cases where we don't set errno, but do use err(3).

Index: timeout.c
===================================================================
RCS file: /cvs/src/usr.bin/timeout/timeout.c,v
retrieving revision 1.13
diff -u -p -r1.13 timeout.c
--- timeout.c   2 Sep 2021 06:23:32 -0000       1.13
+++ timeout.c   2 Sep 2021 09:05:08 -0000
@@ -68,15 +68,15 @@ parse_duration(const char *duration)
 
        ret = strtod(duration, &suffix);
        if (ret == 0 && suffix == duration)
-               err(1, "invalid duration");
+               errx(1, "invalid duration");
        if (ret < 0 || ret >= 100000000UL)
-               err(1, "invalid duration");
+               errx(1, "invalid duration");
 
        if (suffix == NULL || *suffix == '\0')
                return (ret);
 
        if (suffix != NULL && *(suffix + 1) != '\0')
-               err(1, "invalid duration");
+               errx(1, "invalid duration");
 
        switch (*suffix) {
        case 's':
@@ -91,7 +91,7 @@ parse_duration(const char *duration)
                ret *= 60 * 60 * 24;
                break;
        default:
-               err(1, "invalid duration");
+               errx(1, "invalid duration");
        }
 
        return (ret);
@@ -111,12 +111,12 @@ parse_signal(const char *str)
                        if (strcasecmp(str, sys_signame[i]) == 0)
                                return (i);
                }
-               err(1, "invalid signal name");
+               errx(1, "invalid signal name");
        }
 
        sig = strtonum(str, 1, NSIG, &errstr);
        if (errstr != NULL)
-               err(1, "signal %s %s", str, errstr);
+               errx(1, "signal %s %s", str, errstr);
 
        return (int)sig;
 }


Reply via email to