Mercurial > hg > octave-lyh > gnulib-hg
changeset 3920:678b6b899b7c
(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.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Wed, 26 Jun 2002 06:17:35 +0000 |
parents | 20b4363c82b9 |
children | 181064782c71 |
files | lib/fnmatch.c lib/fnmatch_loop.c |
diffstat | 2 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/fnmatch.c +++ b/lib/fnmatch.c @@ -63,9 +63,11 @@ # include <stdlib.h> #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: <wchar.h> must be included before <wctype.h>. */ # include <wchar.h> # include <wctype.h> @@ -103,7 +105,6 @@ #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 @@ # 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 @@ # 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
--- a/lib/fnmatch_loop.c +++ b/lib/fnmatch_loop.c @@ -248,7 +248,7 @@ /* 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 @@ } 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. */