about summary refs log tree commit diff
path: root/posix/wordexp.c
diff options
context:
space:
mode:
Diffstat (limited to 'posix/wordexp.c')
-rw-r--r--posix/wordexp.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/posix/wordexp.c b/posix/wordexp.c
index 765d14d81f..40d1b6a7db 100644
--- a/posix/wordexp.c
+++ b/posix/wordexp.c
@@ -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;
 	    }