1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-21 03:12:48 +02:00

seq: do not allow NaN arguments

* src/seq.c (isnan): Define macro.
(scan_arg): Add check if the given argument is NaN, and exit with
a proper error diagnostic in such a case.
(usage): Document it.
* tests/misc/seq.pl: Add tests.
* doc/coreutils.texi (seq invocation): Document the change.
* NEWS (Changes in behavior): Mention the change.
This commit is contained in:
Bernhard Voelker
2016-04-14 12:39:28 +02:00
parent 81e589021d
commit 9a2e8ac489
4 changed files with 32 additions and 3 deletions

View File

@@ -26,6 +26,7 @@ use strict;
my $prog = 'seq';
my $try_help = "Try '$prog --help' for more information.\n";
my $err_inc_zero = "seq: invalid Zero increment value: '0'\n".$try_help;
my $err_nan_arg = "seq: invalid 'not-a-number' argument: 'nan'\n".$try_help;
my $locale = $ENV{LOCALE_FR_UTF8};
! defined $locale || $locale eq 'none'
@@ -161,6 +162,22 @@ my @Tests =
{ERR_SUBST => 's/0.0/0/'}],
['inc-zero-4', qw(1 -0.0e-10 10), {EXIT => 1},{ERR => $err_inc_zero},
{ERR_SUBST => 's/-0\.0e-10/0/'}],
# Ensure NaN arguments rejected.
['nan-first-1', qw(nan), {EXIT => 1}, {ERR => $err_nan_arg}],
['nan-first-2', qw(NaN 2), {EXIT => 1}, {ERR => $err_nan_arg},
{ERR_SUBST => 's/NaN/nan/'}],
['nan-first-3', qw(nan 1 2), {EXIT => 1}, {ERR => $err_nan_arg}],
['nan-first-4', qw(-- -nan), {EXIT => 1}, {ERR => $err_nan_arg},
{ERR_SUBST => 's/-nan/nan/'}],
['nan-inc-1', qw(1 nan 2), {EXIT => 1}, {ERR => $err_nan_arg}],
['nan-inc-2', qw(1 -NaN 2), {EXIT => 1}, {ERR => $err_nan_arg},
{ERR_SUBST => 's/-NaN/nan/'}],
['nan-last-1', qw(1 1 nan), {EXIT => 1}, {ERR => $err_nan_arg}],
['nan-last-2', qw(1 NaN), {EXIT => 1}, {ERR => $err_nan_arg},
{ERR_SUBST => 's/NaN/nan/'}],
['nan-last-3', qw(0 -1 -NaN), {EXIT => 1}, {ERR => $err_nan_arg},
{ERR_SUBST => 's/-NaN/nan/'}],
);
# Append a newline to each entry in the OUT array.