diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2008-10-15 15:29:38 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2008-10-15 16:30:28 +0200 |
commit | 4fb3704c25726a29b5af658f3137794cdf5cf01c (patch) | |
tree | 8d9e773dafb98a1d46f079ef99ae9be9ccbde07a /tests/misc | |
parent | 514b7fbc0069bbd53087561020b1562ccbcd11ee (diff) | |
download | coreutils-4fb3704c25726a29b5af658f3137794cdf5cf01c.tar.xz |
expr: remove --bignum and --no-bignum options
* doc/coreutils.texi (expr invocation): Remove the --bignum and
--no-bignum options. They weren't really needed, and they broke
longstanding (albeit nonportable) scripts.
* src/expr.c: Don't include <assert.h>. Include "inttostr.h",
"long-options.h", "verify.h". Check at compile-time that
size_t fits in unsigned long int, as the code assumes this in
several places.
(HAVE_GMP): Define to 0 if not defined, for convenience.
(mpz_t, mpz_clear, mpz_init_set_ui, mpz_init_set_str, mpz_add):
(mpz_sub, mpz_mul, mpz_tdiv_q, mpz_tdiv_r, mpz_get_str, mpz_sgn):
(mpz_fits_ulong_p, mpz_get_ui, mpz_out_str):
Supply substitutes when !HAVE_GMP, which work well enough for
expr's purposes.
(mp_integer): Remove. All integers are gmp, if gmp is available.
(struct valinfo): Remove 'z' member; no longer needed. The 'i'
member is always of type mpz_t.
(enum arithmetic_mode, MP_NEVER, MP_ALWAYS, MP_AUTO, mode):
Remove; no longer needed.
(usage): Remove documentation of --bignum and --no-bignum.
(integer_overflow): Abort if error misbehaves, to pacify GCC.
Restore old message on arithmetic overflow, to be conservative.
(die): Omit exit_status parameter; not needed (is always EXPR_FAILURE).
(string_too_long, USE_BIGNUM, NO_USE_BIGNUM, long_options):
Remove; no longer needed.
(main): Don't use getopt_long; this breaks old nonportable scripts.
(int_value): Arg is unsigned, in case we have strings whose length
exceeds LONG_MAX (!).
(int_value, freev, printv, null, tostring, toarith):
(eval6, eval4, eval3):
Always use mpz_ functions, to simplify the code.
(substr_value): Remove; no longer needed.
(getsize): Simplify the API: one arg rather than 3. Don't assume
unsigned long int fits in size_t.
(promote, domult, dodivide, doadd): Remove; no longer needed.
* tests/misc/expr: Don't use --bignum to test for bignum support.
Instead, use big numbers to test this.
Diffstat (limited to 'tests/misc')
-rwxr-xr-x | tests/misc/expr | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tests/misc/expr b/tests/misc/expr index 4d236621e..b790d20a6 100755 --- a/tests/misc/expr +++ b/tests/misc/expr @@ -163,8 +163,8 @@ my @Tests = ['bignum-div', "$big_prod / $big", {OUT => $big_p1}], ); -# If using --bignum fails, remove all /^bignum-/ tests -`expr --bignum 1` +# If using big numbers fails, remove all /^bignum-/ tests +`expr $big_prod '*' $big_prod '*' $big_prod` or @Tests = grep {$_->[0] !~ /^bignum-/} @Tests; # Append a newline to end of each expected `OUT' string. |