summaryrefslogtreecommitdiff
path: root/lib/strtol.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1997-09-21 13:22:20 +0000
committerJim Meyering <jim@meyering.net>1997-09-21 13:22:20 +0000
commit08b6cf0f5319c8349630619d397d5d27f4a9ed29 (patch)
tree9a5432cc821db11fc1eb3600031198ec624d5abc /lib/strtol.c
parent7bb0ee09eb178f88555064568235d033a24e8ffb (diff)
downloadgnulib-08b6cf0f5319c8349630619d397d5d27f4a9ed29.tar.gz
(IN_CTYPE_DOMAIN): Define.
(ISSPACE): Guard with IN_CTYPE_DOMAIN. (ISDIGIT): Guard with IN_CTYPE_DOMAIN. (TOUPPER): Guard with IN_CTYPE_DOMAIN. From Bruno Haible.
Diffstat (limited to 'lib/strtol.c')
-rw-r--r--lib/strtol.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/strtol.c b/lib/strtol.c
index 0d3ec1bab7..6d5f4ac4d4 100644
--- a/lib/strtol.c
+++ b/lib/strtol.c
@@ -129,12 +129,17 @@ extern int errno;
# define ISALPHA(Ch) iswalpha (Ch)
# define TOUPPER(Ch) towupper (Ch)
#else
+# if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
+# define IN_CTYPE_DOMAIN(c) 1
+# else
+# define IN_CTYPE_DOMAIN(c) isascii(c)
+# endif
# define L_(Ch) Ch
# define UCHAR_TYPE unsigned char
# define STRING_TYPE char
-# define ISSPACE(Ch) isspace (Ch)
-# define ISALPHA(Ch) isalpha (Ch)
-# define TOUPPER(Ch) toupper (Ch)
+# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch))
+# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch))
+# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch))
#endif
#ifdef __STDC__