+2020-01-25 Bruno Haible <bruno@clisp.org>
+
+ uchar: Preparations for modules c32isalnum, ..., c32isxdigit.
+ * lib/uchar.in.h (c32isalnum, c32isalpha, c32isblank, c32iscntrl,
+ c32isdigit, c32isgraph, c32islower, c32isprint, c32ispunct, c32isspace,
+ c32isupper, c32isxdigit): New declarations.
+ * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32ISALNUM,
+ GNULIB_C32ISALPHA, GNULIB_C32ISBLANK, GNULIB_C32ISCNTRL,
+ GNULIB_C32ISDIGIT, GNULIB_C32ISGRAPH, GNULIB_C32ISLOWER,
+ GNULIB_C32ISPRINT, GNULIB_C32ISPUNCT, GNULIB_C32ISSPACE,
+ GNULIB_C32ISUPPER, GNULIB_C32ISXDIGIT.
+ * modules/uchar (Makefile.am): Substitute GNULIB_C32ISALNUM,
+ GNULIB_C32ISALPHA, GNULIB_C32ISBLANK, GNULIB_C32ISCNTRL,
+ GNULIB_C32ISDIGIT, GNULIB_C32ISGRAPH, GNULIB_C32ISLOWER,
+ GNULIB_C32ISPRINT, GNULIB_C32ISPUNCT, GNULIB_C32ISSPACE,
+ GNULIB_C32ISUPPER, GNULIB_C32ISXDIGIT.
+ * tests/test-uchar-c++.cc: Test the signature of c32isalnum, c32isalpha,
+ c32isblank, c32iscntrl, c32isdigit, c32isgraph, c32islower, c32isprint,
+ c32ispunct, c32isspace, c32isupper, c32isxdigit.
+
2020-01-25 Bruno Haible <bruno@clisp.org>
mbchar, wctype: Use the corrected iswxdigit function.
#endif
+/* Test a specific property of a 32-bit wide character. */
+#if @GNULIB_C32ISALNUM@
+_GL_FUNCDECL_SYS (c32isalnum, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isalnum, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isalnum);
+#endif
+#if @GNULIB_C32ISALPHA@
+_GL_FUNCDECL_SYS (c32isalpha, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isalpha, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isalpha);
+#endif
+#if @GNULIB_C32ISBLANK@
+_GL_FUNCDECL_SYS (c32isblank, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isblank, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isblank);
+#endif
+#if @GNULIB_C32ISCNTRL@
+_GL_FUNCDECL_SYS (c32iscntrl, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32iscntrl, int, (wint_t wc));
+_GL_CXXALIASWARN (c32iscntrl);
+#endif
+#if @GNULIB_C32ISDIGIT@
+_GL_FUNCDECL_SYS (c32isdigit, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isdigit, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isdigit);
+#endif
+#if @GNULIB_C32ISGRAPH@
+_GL_FUNCDECL_SYS (c32isgraph, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isgraph, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isgraph);
+#endif
+#if @GNULIB_C32ISLOWER@
+_GL_FUNCDECL_SYS (c32islower, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32islower, int, (wint_t wc));
+_GL_CXXALIASWARN (c32islower);
+#endif
+#if @GNULIB_C32ISPRINT@
+_GL_FUNCDECL_SYS (c32isprint, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isprint, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isprint);
+#endif
+#if @GNULIB_C32ISPUNCT@
+_GL_FUNCDECL_SYS (c32ispunct, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32ispunct, int, (wint_t wc));
+_GL_CXXALIASWARN (c32ispunct);
+#endif
+#if @GNULIB_C32ISSPACE@
+_GL_FUNCDECL_SYS (c32isspace, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isspace, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isspace);
+#endif
+#if @GNULIB_C32ISUPPER@
+_GL_FUNCDECL_SYS (c32isupper, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isupper, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isupper);
+#endif
+#if @GNULIB_C32ISXDIGIT@
+_GL_FUNCDECL_SYS (c32isxdigit, int, (wint_t wc));
+_GL_CXXALIAS_SYS (c32isxdigit, int, (wint_t wc));
+_GL_CXXALIASWARN (c32isxdigit);
+#endif
+
+
/* Converts a 32-bit wide character to a multibyte character. */
#if @GNULIB_C32RTOMB@
# if @REPLACE_C32RTOMB@
-# uchar.m4 serial 12
+# uchar.m4 serial 13
dnl Copyright (C) 2019-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_UCHAR_H_DEFAULTS],
[
GNULIB_BTOC32=0; AC_SUBST([GNULIB_BTOC32])
+ GNULIB_C32ISALNUM=0; AC_SUBST([GNULIB_C32ISALNUM])
+ GNULIB_C32ISALPHA=0; AC_SUBST([GNULIB_C32ISALPHA])
+ GNULIB_C32ISBLANK=0; AC_SUBST([GNULIB_C32ISBLANK])
+ GNULIB_C32ISCNTRL=0; AC_SUBST([GNULIB_C32ISCNTRL])
+ GNULIB_C32ISDIGIT=0; AC_SUBST([GNULIB_C32ISDIGIT])
+ GNULIB_C32ISGRAPH=0; AC_SUBST([GNULIB_C32ISGRAPH])
+ GNULIB_C32ISLOWER=0; AC_SUBST([GNULIB_C32ISLOWER])
+ GNULIB_C32ISPRINT=0; AC_SUBST([GNULIB_C32ISPRINT])
+ GNULIB_C32ISPUNCT=0; AC_SUBST([GNULIB_C32ISPUNCT])
+ GNULIB_C32ISSPACE=0; AC_SUBST([GNULIB_C32ISSPACE])
+ GNULIB_C32ISUPPER=0; AC_SUBST([GNULIB_C32ISUPPER])
+ GNULIB_C32ISXDIGIT=0; AC_SUBST([GNULIB_C32ISXDIGIT])
GNULIB_C32RTOMB=0; AC_SUBST([GNULIB_C32RTOMB])
GNULIB_C32SNRTOMBS=0; AC_SUBST([GNULIB_C32SNRTOMBS])
GNULIB_C32SRTOMBS=0; AC_SUBST([GNULIB_C32SRTOMBS])
-e 's|@''NEXT_UCHAR_H''@|$(NEXT_UCHAR_H)|g' \
-e 's|@''SMALL_WCHAR_T''@|$(SMALL_WCHAR_T)|g' \
-e 's/@''GNULIB_BTOC32''@/$(GNULIB_BTOC32)/g' \
+ -e 's/@''GNULIB_C32ISALNUM''@/$(GNULIB_C32ISALNUM)/g' \
+ -e 's/@''GNULIB_C32ISALPHA''@/$(GNULIB_C32ISALPHA)/g' \
+ -e 's/@''GNULIB_C32ISBLANK''@/$(GNULIB_C32ISBLANK)/g' \
+ -e 's/@''GNULIB_C32ISCNTRL''@/$(GNULIB_C32ISCNTRL)/g' \
+ -e 's/@''GNULIB_C32ISDIGIT''@/$(GNULIB_C32ISDIGIT)/g' \
+ -e 's/@''GNULIB_C32ISGRAPH''@/$(GNULIB_C32ISGRAPH)/g' \
+ -e 's/@''GNULIB_C32ISLOWER''@/$(GNULIB_C32ISLOWER)/g' \
+ -e 's/@''GNULIB_C32ISPRINT''@/$(GNULIB_C32ISPRINT)/g' \
+ -e 's/@''GNULIB_C32ISPUNCT''@/$(GNULIB_C32ISPUNCT)/g' \
+ -e 's/@''GNULIB_C32ISSPACE''@/$(GNULIB_C32ISSPACE)/g' \
+ -e 's/@''GNULIB_C32ISUPPER''@/$(GNULIB_C32ISUPPER)/g' \
+ -e 's/@''GNULIB_C32ISXDIGIT''@/$(GNULIB_C32ISXDIGIT)/g' \
-e 's/@''GNULIB_C32RTOMB''@/$(GNULIB_C32RTOMB)/g' \
-e 's/@''GNULIB_C32SNRTOMBS''@/$(GNULIB_C32SNRTOMBS)/g' \
-e 's/@''GNULIB_C32SRTOMBS''@/$(GNULIB_C32SRTOMBS)/g' \
SIGNATURE_CHECK (GNULIB_NAMESPACE::btoc32, wint_t, (int));
#endif
+#if GNULIB_TEST_C32ISALNUM
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isalnum, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISALPHA
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isalpha, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISBLANK
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isblank, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISCNTRL
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32iscntrl, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISDIGIT
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isdigit, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISGRAPH
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isgraph, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISLOWER
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32islower, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISPRINT
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isprint, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISPUNCT
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32ispunct, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISSPACE
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isspace, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISUPPER
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isupper, int, (wint_t));
+#endif
+
+#if GNULIB_TEST_C32ISXDIGIT
+SIGNATURE_CHECK (GNULIB_NAMESPACE::c32isxdigit, int, (wint_t));
+#endif
+
#if GNULIB_TEST_C32RTOMB
SIGNATURE_CHECK (GNULIB_NAMESPACE::c32rtomb, size_t,
(char *, char32_t , mbstate_t *));