diff options
Diffstat (limited to 'toys/posix/touch.c')
-rw-r--r-- | toys/posix/touch.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/toys/posix/touch.c b/toys/posix/touch.c index 052448ba..22a1e2e8 100644 --- a/toys/posix/touch.c +++ b/toys/posix/touch.c @@ -80,10 +80,13 @@ void touch_main(void) if (s) break; toybuf[1]='y'; } + tm.tm_sec = 0; ts->tv_nsec = 0; if (s && *s=='.' && sscanf(s, ".%2u%n", &(tm.tm_sec), &len) == 1) { - sscanf(s += len, "%lu%n", &ts->tv_nsec, &len); - len++; + if (sscanf(s += len, "%lu%n", &ts->tv_nsec, &len) == 1) { + s--; + len++; + } else len = 0; } else len = 0; } if (len) { |