Paul Eggert wrote: > 2006-12-21 Paul Eggert <[EMAIL PROTECTED]> > > * MODULES.html.sh: New module wctype. > * lib/wctype_.h, m4/wctype.m4, modules/wctype: New files. > * lib/fnmatch.c: Don't bother to include <wchar.h> before > <wctype.h>, since the new wctype module should fix this. > * lib/quotearg.c: Include <wctype.h> unconditionally, since > the wctype module should arrange for it. > * lib/regex_internal.h: Likewise. > * m4/quotearg.m4 (gl_QUOTEARG): Don't check for wctype.h or iswprint, > since the wctype module should handle this now. > * m4/regex.m4 (gl_PREREQ_REGEX): Don't check for wctype.h. > * modules/fnmatch (Depends-on): Add wctype. > * modules/quotearg (Depends-on): Likewise. > * modules/regex (Depends-on): Likewise.
Thanks a lot. Very nice. I'm adding a few more comments only: a reference to the official documentation of <wctype.h>, and mentions of the systems that we need to check if we make changes in this area. The iswprint replacement in quotearg.c used to consider all characters as printable; the new replacement considers only ASCII characters as printable. Let's whether someone on an old platform but with ISO-8859-1 characters in his filenames cares about it... Bruno *** lib/wctype_.h 22 Dec 2006 00:21:54 -0000 1.1 --- lib/wctype_.h 22 Dec 2006 16:19:33 -0000 *************** *** 18,30 **** /* Written by Bruno Haible and Paul Eggert. */ ! /* iswctype, towctrans, towlower, towupper, wctrans, wctype, ! wctrans_t, and wctype_t are not yet implemented. */ #ifndef _GL_WCTYPE_H #define _GL_WCTYPE_H ! /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before <wchar.h>. */ --- 18,36 ---- /* Written by Bruno Haible and Paul Eggert. */ ! /* ! * ISO C 99 <wctype.h> for platforms that lack it. ! * <http://www.opengroup.org/susv3xbd/wctype.h.html> ! * ! * iswctype, towctrans, towlower, towupper, wctrans, wctype, ! * wctrans_t, and wctype_t are not yet implemented. ! */ #ifndef _GL_WCTYPE_H #define _GL_WCTYPE_H ! /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. ! Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before <wchar.h>. */ *************** *** 32,41 **** --- 38,51 ---- #include <time.h> #include <wchar.h> + /* Include the original <wctype.h> if it exists. + BeOS 5 has the functions but no <wctype.h>. */ #if @HAVE_WCTYPE_H@ # include @ABSOLUTE_WCTYPE_H@ #endif + /* IRIX 5.3 has a bug: its isw* macros reference an undefined variable + _ctmp_. */ #if @HAVE_WCTYPE_CTMP_BUG@ static wint_t _ctmp_; #endif *** m4/wctype.m4 22 Dec 2006 00:21:54 -0000 1.1 --- m4/wctype.m4 22 Dec 2006 16:19:33 -0000 *************** *** 27,32 **** --- 27,34 ---- WCTYPE_H=wctype.h HAVE_WCTYPE_CTMP_BUG=0 if test $ac_cv_header_wctype_h = yes; then + dnl IRIX 5.3 has a bug: its isw* macros reference an undefined variable + dnl _ctmp_. Test against this bug. AC_CACHE_CHECK([whether wctype macros need _ctmp_ declared], [gl_cv_wctype_ctmp_bug], [gl_cv_wctype_ctmp_bug=no