From 4fb3704c25726a29b5af658f3137794cdf5cf01c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 15 Oct 2008 15:29:38 +0200 Subject: 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 . 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. --- tests/misc/expr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests/misc/expr') 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. -- cgit v1.2.3-54-g00ecf