From 0d051ba2210886d3b07e636c6c427462280999b7 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 26 Jun 2002 06:17:35 +0000 Subject: (WIDE_CHAR_SUPPORT): New macro. Use it uniformly instead of (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H). It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1 reported by Vin Shelton. --- lib/fnmatch.c | 8 ++++---- lib/fnmatch_loop.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/fnmatch.c b/lib/fnmatch.c index 452edc063..73dc0e78e 100644 --- a/lib/fnmatch.c +++ b/lib/fnmatch.c @@ -63,9 +63,11 @@ char *alloca (); # include #endif +#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC) + /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ -#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +#if defined _LIBC || WIDE_CHAR_SUPPORT /* Solaris 2.5 has a bug: must be included before . */ # include # include @@ -103,7 +105,6 @@ extern int fnmatch (const char *pattern, const char *string, int flags); #if defined _LIBC || !defined __GNU_LIBRARY__ || !HAVE_FNMATCH_GNU -# undef ISASCII /* defined in Solaris5.6's /usr/include/sys/euc.h */ # if defined STDC_HEADERS || !defined isascii # define ISASCII(c) 1 # else @@ -121,7 +122,6 @@ extern int fnmatch (const char *pattern, const char *string, int flags); # define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) # endif -# undef ISPRINT /* defined in Solaris5.6's /usr/include/sys/euc.h */ # define ISPRINT(c) (ISASCII (c) && isprint (c)) # define ISDIGIT(c) (ISASCII (c) && isdigit (c)) # define ISALNUM(c) (ISASCII (c) && isalnum (c)) @@ -135,7 +135,7 @@ extern int fnmatch (const char *pattern, const char *string, int flags); # define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) -# if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +# if defined _LIBC || WIDE_CHAR_SUPPORT /* The GNU C library provides support for user-defined character classes and the functions from ISO C amendement 1. */ # ifdef CHARCLASS_NAME_MAX diff --git a/lib/fnmatch_loop.c b/lib/fnmatch_loop.c index e7b0a91fe..e3450b690 100644 --- a/lib/fnmatch_loop.c +++ b/lib/fnmatch_loop.c @@ -248,7 +248,7 @@ FCT (pattern, string, string_end, no_leading_period, flags) /* Leave room for the null. */ CHAR str[CHAR_CLASS_MAX_LENGTH + 1]; size_t c1 = 0; -#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +#if defined _LIBC || WIDE_CHAR_SUPPORT wctype_t wt; #endif const CHAR *startp = p; @@ -278,7 +278,7 @@ FCT (pattern, string, string_end, no_leading_period, flags) } str[c1] = L('\0'); -#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +#if defined _LIBC || WIDE_CHAR_SUPPORT wt = IS_CHAR_CLASS (str); if (wt == 0) /* Invalid character class name. */ -- cgit v1.2.3-54-g00ecf