+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ wctype-h: Add support for Minix.
+ * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towlower is declared. Set
+ REPLACE_TOWLOWER.
+ * modules/wctype-h (Makefile.am): Substitute REPLACE_TOWLOWER.
+ * lib/wctype.in.h (towlower, towupper): Test REPLACE_TOWLOWER, not
+ REPLACE_ISWCNTRL.
+
2011-07-31 Paul Eggert <eggert@cs.ucla.edu>
* lib/xalloc.h (DEFAULT_MXFAST): Track 64-bit glibc.
# define iswspace rpl_iswspace
# define iswupper rpl_iswupper
# define iswxdigit rpl_iswxdigit
+# endif
+# endif
+# if @REPLACE_TOWLOWER@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define towlower rpl_towlower
# define towupper rpl_towupper
# endif
}
static inline wint_t
-# if @REPLACE_ISWCNTRL@
+# if @REPLACE_TOWLOWER@
rpl_towlower
# else
towlower
}
static inline wint_t
-# if @REPLACE_ISWCNTRL@
+# if @REPLACE_TOWLOWER@
rpl_towupper
# else
towupper
# endif
#endif
-#if @REPLACE_ISWCNTRL@ || defined __MINGW32__
+#if @REPLACE_TOWLOWER@ || defined __MINGW32__
_GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
_GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
#else
-# wctype_h.m4 serial 14
+# wctype_h.m4 serial 15
dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
AC_SUBST([REPLACE_ISWCNTRL])
if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
- dnl Redefine all of iswcntrl, ..., towupper in <wctype.h>.
+ dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>.
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ AC_CHECK_DECLS([towlower],,,
+ [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+ included before <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+ must be included before <wchar.h>. */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ ]])
+ if test $ac_cv_have_decl_towlower = yes; then
+ dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and
+ dnl towupper() although it does not have the functions. Avoid a collision
+ dnl with gnulib's replacement.
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ AC_SUBST([REPLACE_TOWLOWER])
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ dnl Redefine towlower, towupper in <wctype.h>.
:
fi
-e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
-e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
-e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
< $(srcdir)/wctype.in.h; \