(parse_arith): Use _itoa_word instead of _itoa if possible.
authordrepper <drepper>
Mon, 22 Jan 2007 21:07:39 +0000 (21:07 +0000)
committerdrepper <drepper>
Mon, 22 Jan 2007 21:07:39 +0000 (21:07 +0000)
posix/wordexp.c

index 765d14d..40d1b6a 100644 (file)
@@ -1,5 +1,5 @@
 /* POSIX.2 wordexp implementation.
-   Copyright (C) 1997-2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2003, 2005, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Tim Waugh <tim@cyberelk.demon.co.uk>.
 
@@ -25,6 +25,7 @@
 #include <fnmatch.h>
 #include <glob.h>
 #include <libintl.h>
+#include <limits.h>
 #include <paths.h>
 #include <pwd.h>
 #include <signal.h>
@@ -757,8 +758,13 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
                convertme = numresult;
 
              result[20] = '\0';
-             *word = w_addstr (*word, word_length, max_length,
-                               _itoa (convertme, &result[20], 10, 0));
+             char *numstr;
+#if LLONG_MAX == LONG_MAX
+             numstr = _itoa_word (convertme, &result[20], 10, 0);
+#else
+             numstr = _itoa (convertme, &result[20], 10, 0);
+#endif
+             *word = w_addstr (*word, word_length, max_length, numstr);
              free (expr);
              return *word ? 0 : WRDE_NOSPACE;
            }