From b97f8bb5ce2977d9b54904dc4bbc69de7ca3cb2d Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 14 Sep 2003 17:25:16 +0000 Subject: [PATCH] (print_factors): Give a separate diagnostic for numbers that are too large, but otherwise valid. --- src/factor.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/factor.c b/src/factor.c index c364781a1d..f27c1c08db 100644 --- a/src/factor.c +++ b/src/factor.c @@ -1,5 +1,5 @@ /* factor -- print prime factors of n. - Copyright (C) 86, 1995-2002 Free Software Foundation, Inc. + Copyright (C) 86, 1995-2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -147,10 +147,14 @@ print_factors (const char *s) int n_factors; int i; char buf[INT_BUFSIZE_BOUND (uintmax_t)]; + strtol_error err; - if (xstrtoumax (s, NULL, 10, &n, "") != LONGINT_OK) + if ((err = xstrtoumax (s, NULL, 10, &n, "")) != LONGINT_OK) { - error (0, 0, _("`%s' is not a valid positive integer"), s); + if (err == LONGINT_OVERFLOW) + error (0, 0, _("`%s' is too large"), s); + else + error (0, 0, _("`%s' is not a valid positive integer"), s); return 1; } n_factors = factor (n, MAX_N_FACTORS, factors); -- 2.47.2