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; }