diff --git a/NEWS b/NEWS index c160a4a7..f97ef37a 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ procps-ng-NEXT * kill: report error if cannot kill process Debian #733172 * watch: Add hostname to header * library: Find tty quicker Debian #770215 + * watch,free: use locale-independent float Debian #692113 procps-ng-3.3.11 ---------------- diff --git a/free.1 b/free.1 index 0cbab5d1..ca669231 100644 --- a/free.1 +++ b/free.1 @@ -2,7 +2,7 @@ .\" This page Copyright (C) 1993 Matt Welsh, mdw@sunsite.unc.edu. .\" Long options where added at April 15th, 2011. .\" Freely distributable under the terms of the GPL -.TH FREE 1 "Jul 2016" "procps-ng" "User Commands" +.TH FREE 1 "2016-06-03" "procps-ng" "User Commands" .SH NAME free \- Display amount of free and used memory in the system .SH SYNOPSIS @@ -110,11 +110,10 @@ option. \fB\-l\fR, \fB\-\-lohi\fR Show detailed low and high memory statistics. .TP -\fB\-s\fR, \fB\-\-seconds\fR \fIseconds\fR -Continuously display the result delay -.I seconds +\fB\-s\fR, \fB\-\-seconds\fR \fIdelay\fR +Continuously display the result \fIdelay\fR seconds apart. You may actually specify any floating point number for -.IR delay , +\fIdelay\fR using either . or , for decimal point. .BR usleep (3) is used for microsecond resolution delay times. .TP diff --git a/free.c b/free.c index f86ab951..3db0b59e 100644 --- a/free.c +++ b/free.c @@ -324,9 +324,7 @@ int main(int argc, char **argv) case 's': flags |= FREE_REPEAT; errno = 0; - args.repeat_interval = (1000000 * strtof(optarg, &endptr)); - if (errno || optarg == endptr || (endptr && *endptr)) - xerrx(EXIT_FAILURE, _("seconds argument `%s' failed"), optarg); + args.repeat_interval = (1000000 * strtod_nol_or_err(optarg, "seconds argument failed")); if (args.repeat_interval < 1) xerrx(EXIT_FAILURE, _("seconds argument `%s' is not positive number"), optarg); diff --git a/watch.c b/watch.c index c87eeb52..c510bed6 100644 --- a/watch.c +++ b/watch.c @@ -724,7 +724,7 @@ int main(int argc, char *argv[]) flags |= WATCH_EXEC; break; case 'n': - interval = strtod_or_err(optarg, _("failed to parse argument")); + interval = strtod_nol_or_err(optarg, _("failed to parse argument")); if (interval < 0.1) interval = 0.1; if (interval > UINT_MAX)