>From bd0e30c9555eebe0f2ce6053061dc3e82d89d718 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 26 Jan 2020 00:04:38 +0100 Subject: [PATCH 24/25] c32isxdigit: New module. * lib/c32isxdigit.c: New file. * modules/c32isxdigit: New file. * doc/posix-functions/iswxdigit.texi: Mention the new module. --- ChangeLog | 7 +++++++ doc/posix-functions/iswxdigit.texi | 7 +++++-- lib/c32isxdigit.c | 25 +++++++++++++++++++++++++ modules/c32isxdigit | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 lib/c32isxdigit.c create mode 100644 modules/c32isxdigit diff --git a/ChangeLog b/ChangeLog index 5cebfea..ce84fa1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2020-01-25 Bruno Haible + c32isxdigit: New module. + * lib/c32isxdigit.c: New file. + * modules/c32isxdigit: New file. + * doc/posix-functions/iswxdigit.texi: Mention the new module. + +2020-01-25 Bruno Haible + c32isupper: Add tests. * tests/test-c32isupper.c: New file. * tests/test-c32isupper.sh: New file. diff --git a/doc/posix-functions/iswxdigit.texi b/doc/posix-functions/iswxdigit.texi index 705c829..042bba5 100644 --- a/doc/posix-functions/iswxdigit.texi +++ b/doc/posix-functions/iswxdigit.texi @@ -23,6 +23,9 @@ FreeBSD 12, NetBSD 8.0, Solaris 11.4, MSVC 14. Portability problems not fixed by Gnulib: @itemize @item -On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot -accommodate all Unicode characters. +On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and +therefore cannot accommodate all Unicode characters. +However, the Gnulib function @code{c32isxdigit}, provided by Gnulib module +@code{c32isxdigit}, operates on 32-bit wide characters and therefore does not +have this limitation. @end itemize diff --git a/lib/c32isxdigit.c b/lib/c32isxdigit.c new file mode 100644 index 0000000..3a23195 --- /dev/null +++ b/lib/c32isxdigit.c @@ -0,0 +1,25 @@ +/* Test 32-bit wide character for being a hexadecimal digit. + Copyright (C) 2020 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ + +#include + +/* Specification. */ +#include + +#define FUNC c32isxdigit +#define WCHAR_FUNC iswxdigit +#define UCS_FUNC uc_is_xdigit +#include "c32is-impl.h" diff --git a/modules/c32isxdigit b/modules/c32isxdigit new file mode 100644 index 0000000..4572deb --- /dev/null +++ b/modules/c32isxdigit @@ -0,0 +1,35 @@ +Description: +c32isxdigit() function: test 32-bit wide character for being a hexadecimal +digit. + +Files: +lib/c32isxdigit.c +lib/c32is-impl.h +m4/mbrtoc32.m4 + +Depends-on: +uchar +wchar +wctype-h +iswxdigit +localcharset [test $REPLACE_MBSTATE_T = 1] +streq [test $REPLACE_MBSTATE_T = 1] +unictype/ctype-xdigit +verify + +configure.ac: +AC_REQUIRE([gl_UCHAR_H]) +AC_REQUIRE([gl_MBRTOC32_SANITYCHECK]) +gl_UCHAR_MODULE_INDICATOR([c32isxdigit]) + +Makefile.am: +lib_SOURCES += c32isxdigit.c + +Include: + + +License: +LGPLv3+ or GPLv2 + +Maintainer: +Bruno Haible -- 2.7.4