That is, you can write for example .1 instead of 0.1, or 1. instead of 1.0. The parsing is not strict, so can also type . instead of 0.
Signed-off-by: Mattias Andrée <[email protected]> --- sleep.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sleep.c b/sleep.c index 693ce88..ccf90a4 100644 --- a/sleep.c +++ b/sleep.c @@ -31,17 +31,19 @@ strtotime(char *str, struct timespec *ts) c = *suf; *suf = *p = '\0'; - ts->tv_sec = estrtonum(str, 0, TIME_MAX); + ts->tv_sec = 0; + ts->tv_nsec = 0; - if (p++ != suf) { + if (isdigit(*str)) + ts->tv_sec = estrtonum(str, 0, TIME_MAX); + + if (p++ != suf && isdigit(*p)) { n = strlen(p); n = n < 9 ? n : 9; memcpy(buf, p, n); memset(buf + n, '0', 9 - n); buf[9] = '\0'; ts->tv_nsec = estrtonum(buf, 0, 999999999L); - } else { - ts->tv_nsec = 0; } *suf = c; -- 2.7.3
