watch,free: interpet intervals in non-locale way
Both watch and free used the locale to determine the required delay interval for subsequent updates. It's preferable to not care about locale and accept both 12.34 and 12,34 as meaning 12 seconds and 340 microseconds. References: https://bugs.debian.org/692113 Signed-off-by: Craig Small <csmall@enc.com.au>
This commit is contained in:
parent
d936f62eec
commit
1310a76848
1
NEWS
1
NEWS
@ -8,6 +8,7 @@ procps-ng-NEXT
|
|||||||
* kill: report error if cannot kill process Debian #733172
|
* kill: report error if cannot kill process Debian #733172
|
||||||
* watch: Add hostname to header
|
* watch: Add hostname to header
|
||||||
* library: Find tty quicker Debian #770215
|
* library: Find tty quicker Debian #770215
|
||||||
|
* watch,free: use locale-independent float Debian #692113
|
||||||
|
|
||||||
procps-ng-3.3.11
|
procps-ng-3.3.11
|
||||||
----------------
|
----------------
|
||||||
|
9
free.1
9
free.1
@ -2,7 +2,7 @@
|
|||||||
.\" This page Copyright (C) 1993 Matt Welsh, mdw@sunsite.unc.edu.
|
.\" This page Copyright (C) 1993 Matt Welsh, mdw@sunsite.unc.edu.
|
||||||
.\" Long options where added at April 15th, 2011.
|
.\" Long options where added at April 15th, 2011.
|
||||||
.\" Freely distributable under the terms of the GPL
|
.\" 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
|
.SH NAME
|
||||||
free \- Display amount of free and used memory in the system
|
free \- Display amount of free and used memory in the system
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -110,11 +110,10 @@ option.
|
|||||||
\fB\-l\fR, \fB\-\-lohi\fR
|
\fB\-l\fR, \fB\-\-lohi\fR
|
||||||
Show detailed low and high memory statistics.
|
Show detailed low and high memory statistics.
|
||||||
.TP
|
.TP
|
||||||
\fB\-s\fR, \fB\-\-seconds\fR \fIseconds\fR
|
\fB\-s\fR, \fB\-\-seconds\fR \fIdelay\fR
|
||||||
Continuously display the result delay
|
Continuously display the result \fIdelay\fR seconds
|
||||||
.I seconds
|
|
||||||
apart. You may actually specify any floating point number for
|
apart. You may actually specify any floating point number for
|
||||||
.IR delay ,
|
\fIdelay\fR using either . or , for decimal point.
|
||||||
.BR usleep (3)
|
.BR usleep (3)
|
||||||
is used for microsecond resolution delay times.
|
is used for microsecond resolution delay times.
|
||||||
.TP
|
.TP
|
||||||
|
4
free.c
4
free.c
@ -324,9 +324,7 @@ int main(int argc, char **argv)
|
|||||||
case 's':
|
case 's':
|
||||||
flags |= FREE_REPEAT;
|
flags |= FREE_REPEAT;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
args.repeat_interval = (1000000 * strtof(optarg, &endptr));
|
args.repeat_interval = (1000000 * strtod_nol_or_err(optarg, "seconds argument failed"));
|
||||||
if (errno || optarg == endptr || (endptr && *endptr))
|
|
||||||
xerrx(EXIT_FAILURE, _("seconds argument `%s' failed"), optarg);
|
|
||||||
if (args.repeat_interval < 1)
|
if (args.repeat_interval < 1)
|
||||||
xerrx(EXIT_FAILURE,
|
xerrx(EXIT_FAILURE,
|
||||||
_("seconds argument `%s' is not positive number"), optarg);
|
_("seconds argument `%s' is not positive number"), optarg);
|
||||||
|
2
watch.c
2
watch.c
@ -724,7 +724,7 @@ int main(int argc, char *argv[])
|
|||||||
flags |= WATCH_EXEC;
|
flags |= WATCH_EXEC;
|
||||||
break;
|
break;
|
||||||
case 'n':
|
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)
|
if (interval < 0.1)
|
||||||
interval = 0.1;
|
interval = 0.1;
|
||||||
if (interval > UINT_MAX)
|
if (interval > UINT_MAX)
|
||||||
|
Loading…
Reference in New Issue
Block a user