[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: Update required gnulib modules for XS
From: |
Gavin D. Smith |
Subject: |
branch master updated: Update required gnulib modules for XS |
Date: |
Sat, 11 Nov 2023 17:03:25 -0500 |
This is an automated email from the git hooks/post-receive script.
gavin pushed a commit to branch master
in repository texinfo.
The following commit(s) were added to refs/heads/master by this push:
new f5517b6aec Update required gnulib modules for XS
f5517b6aec is described below
commit f5517b6aecb3cb4f40f847e2ccfbdcf6f027a0e5
Author: Gavin Smith <gavinsmith0123@gmail.com>
AuthorDate: Sat Nov 11 22:03:17 2023 +0000
Update required gnulib modules for XS
* tp/Texinfo/XS:
Run "gnulib-tool --remove-import wcwidth c32width c32isupper", and
"gnulib-tool --import unictype/ctype-upper".
---
.gitignore | 2 -
ChangeLog | 8 +
tp/Texinfo/XS/gnulib/lib/Makefile.am | 166 +----
tp/Texinfo/XS/gnulib/lib/c32is-impl.h | 105 ---
tp/Texinfo/XS/gnulib/lib/c32isupper.c | 26 -
tp/Texinfo/XS/gnulib/lib/c32width.c | 102 ---
tp/Texinfo/XS/gnulib/lib/localcharset.c | 1159 -------------------------------
tp/Texinfo/XS/gnulib/lib/uchar.in.h | 910 ------------------------
tp/Texinfo/XS/gnulib/lib/wctype-h.c | 23 -
tp/Texinfo/XS/gnulib/lib/wctype.in.h | 797 ---------------------
tp/Texinfo/XS/gnulib/lib/wcwidth.c | 73 --
tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4 | 10 +-
tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4 | 48 --
tp/Texinfo/XS/gnulib/m4/localcharset.m4 | 11 -
tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4 | 266 -------
tp/Texinfo/XS/gnulib/m4/uchar_h.m4 | 249 -------
tp/Texinfo/XS/gnulib/m4/wctype_h.m4 | 204 ------
tp/Texinfo/XS/gnulib/m4/wcwidth.m4 | 115 ---
18 files changed, 13 insertions(+), 4261 deletions(-)
diff --git a/.gitignore b/.gitignore
index e3b0d88709..a3fd3ceb70 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,7 +86,6 @@ tp/Texinfo/XS/gnulib/lib/stdlib.h
tp/Texinfo/XS/gnulib/lib/unistd.h
tp/Texinfo/XS/gnulib/lib/iconv.h
tp/Texinfo/XS/gnulib/lib/stdckdint.h
-tp/Texinfo/XS/gnulib/lib/uchar.h
tp/Texinfo/XS/gnulib/lib/uniconv.h
tp/Texinfo/XS/gnulib/lib/unistr.h
@@ -309,7 +308,6 @@ tp/Texinfo/XS/gnulib/lib/uninorm.h
tp/Texinfo/XS/gnulib/lib/unitypes.h
tp/Texinfo/XS/gnulib/lib/uniwidth.h
tp/Texinfo/XS/gnulib/lib/wchar.h
-tp/Texinfo/XS/gnulib/lib/wctype.h
tp/Texinfo/XS/gnulib/lib/sys/types.h
tp/Texinfo/XS/gnulib/m4/libtool.m4
diff --git a/ChangeLog b/ChangeLog
index e98dafc77e..d6f46d0781 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2023-11-11 Gavin Smith <gavinsmith0123@gmail.com>
+
+ Update required gnulib modules for XS
+
+ * tp/Texinfo/XS:
+ Run "gnulib-tool --remove-import wcwidth c32width c32isupper", and
+ "gnulib-tool --import unictype/ctype-upper".
+
2023-11-11 Gavin Smith <gavinsmith0123@gmail.com>
Revised locale-independent paragraph formatting.
diff --git a/tp/Texinfo/XS/gnulib/lib/Makefile.am
b/tp/Texinfo/XS/gnulib/lib/Makefile.am
index abafcdae43..38d4acfaf0 100644
--- a/tp/Texinfo/XS/gnulib/lib/Makefile.am
+++ b/tp/Texinfo/XS/gnulib/lib/Makefile.am
@@ -32,8 +32,6 @@
# --no-conditional-dependencies \
# --libtool \
# --macro-prefix=gl \
-# c32isupper \
-# c32width \
# getline \
# iconv \
# libunistring \
@@ -49,6 +47,7 @@
# unictype/category-L \
# unictype/category-Mn \
# unictype/category-test \
+# unictype/ctype-upper \
# uninorm/nfc \
# uninorm/nfkd \
# uninorm/u8-normalize \
@@ -61,8 +60,7 @@
# uniwidth/u8-strwidth \
# uniwidth/u8-width \
# unsetenv \
-# vasprintf \
-# wcwidth
+# vasprintf
AUTOMAKE_OPTIONS = 1.14 gnits subdir-objects
@@ -92,7 +90,6 @@ libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS)
EXTRA_libgnu_la_SOURCES =
libgnu_la_LDFLAGS = $(AM_LDFLAGS)
libgnu_la_LDFLAGS += -no-undefined
-libgnu_la_LDFLAGS += $(LTLIBC32CONV)
libgnu_la_LDFLAGS += $(LTLIBICONV)
libgnu_la_LDFLAGS += $(LTLIBINTL)
libgnu_la_LDFLAGS += $(LTLIBUNISTRING)
@@ -199,20 +196,6 @@ EXTRA_DIST += c-strcaseeq.h
## end gnulib module c-strcaseeq
-## begin gnulib module c32isupper
-
-libgnu_la_SOURCES += c32isupper.c
-
-EXTRA_DIST += c32is-impl.h
-
-## end gnulib module c32isupper
-
-## begin gnulib module c32width
-
-libgnu_la_SOURCES += c32width.c
-
-## end gnulib module c32width
-
## begin gnulib module errno
BUILT_SOURCES += $(ERRNO_H)
@@ -504,14 +487,6 @@ EXTRA_DIST += limits.in.h
## end gnulib module limits-h
-## begin gnulib module localcharset
-
-libgnu_la_SOURCES += localcharset.c
-
-EXTRA_DIST += localcharset.h
-
-## end gnulib module localcharset
-
## begin gnulib module malloca
libgnu_la_SOURCES += malloca.c
@@ -1222,86 +1197,6 @@ EXTRA_DIST += sys_types.in.h
## end gnulib module sys_types
-## begin gnulib module uchar
-
-BUILT_SOURCES += uchar.h
-
-uchar.h: uchar.in.h $(top_builddir)/config.status $(CXXDEFS_H)
$(ARG_NONNULL_H) $(WARN_ON_USE_H)
- $(gl_V_at)$(SED_HEADER_STDOUT) \
- -e 's|@''GUARD_PREFIX''@|GL|g' \
- -e 's/@''HAVE_UCHAR_H''@/$(HAVE_UCHAR_H)/g' \
- -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
- -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
- -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
- -e 's|@''NEXT_UCHAR_H''@|$(NEXT_UCHAR_H)|g' \
- -e 's|@''CXX_HAS_CHAR8_TYPE''@|$(CXX_HAS_CHAR8_TYPE)|g' \
- -e 's|@''CXX_HAS_UCHAR_TYPES''@|$(CXX_HAS_UCHAR_TYPES)|g' \
- -e 's|@''SMALL_WCHAR_T''@|$(SMALL_WCHAR_T)|g' \
- -e
's|@''GNULIBHEADERS_OVERRIDE_CHAR8_T''@|$(GNULIBHEADERS_OVERRIDE_CHAR8_T)|g' \
- -e
's|@''GNULIBHEADERS_OVERRIDE_CHAR16_T''@|$(GNULIBHEADERS_OVERRIDE_CHAR16_T)|g' \
- -e
's|@''GNULIBHEADERS_OVERRIDE_CHAR32_T''@|$(GNULIBHEADERS_OVERRIDE_CHAR32_T)|g' \
- -e 's/@''GNULIB_BTOC32''@/$(GL_GNULIB_BTOC32)/g' \
- -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \
- -e 's/@''GNULIB_C32ISALNUM''@/$(GL_GNULIB_C32ISALNUM)/g' \
- -e 's/@''GNULIB_C32ISALPHA''@/$(GL_GNULIB_C32ISALPHA)/g' \
- -e 's/@''GNULIB_C32ISBLANK''@/$(GL_GNULIB_C32ISBLANK)/g' \
- -e 's/@''GNULIB_C32ISCNTRL''@/$(GL_GNULIB_C32ISCNTRL)/g' \
- -e 's/@''GNULIB_C32ISDIGIT''@/$(GL_GNULIB_C32ISDIGIT)/g' \
- -e 's/@''GNULIB_C32ISGRAPH''@/$(GL_GNULIB_C32ISGRAPH)/g' \
- -e 's/@''GNULIB_C32ISLOWER''@/$(GL_GNULIB_C32ISLOWER)/g' \
- -e 's/@''GNULIB_C32ISPRINT''@/$(GL_GNULIB_C32ISPRINT)/g' \
- -e 's/@''GNULIB_C32ISPUNCT''@/$(GL_GNULIB_C32ISPUNCT)/g' \
- -e 's/@''GNULIB_C32ISSPACE''@/$(GL_GNULIB_C32ISSPACE)/g' \
- -e 's/@''GNULIB_C32ISUPPER''@/$(GL_GNULIB_C32ISUPPER)/g' \
- -e 's/@''GNULIB_C32ISXDIGIT''@/$(GL_GNULIB_C32ISXDIGIT)/g' \
- -e 's/@''GNULIB_C32TOLOWER''@/$(GL_GNULIB_C32TOLOWER)/g' \
- -e 's/@''GNULIB_C32TOUPPER''@/$(GL_GNULIB_C32TOUPPER)/g' \
- -e 's/@''GNULIB_C32WIDTH''@/$(GL_GNULIB_C32WIDTH)/g' \
- -e 's/@''GNULIB_C32RTOMB''@/$(GL_GNULIB_C32RTOMB)/g' \
- -e 's/@''GNULIB_C32SNRTOMBS''@/$(GL_GNULIB_C32SNRTOMBS)/g' \
- -e 's/@''GNULIB_C32SRTOMBS''@/$(GL_GNULIB_C32SRTOMBS)/g' \
- -e 's/@''GNULIB_C32STOMBS''@/$(GL_GNULIB_C32STOMBS)/g' \
- -e 's/@''GNULIB_C32SWIDTH''@/$(GL_GNULIB_C32SWIDTH)/g' \
- -e 's/@''GNULIB_C32TOB''@/$(GL_GNULIB_C32TOB)/g' \
- -e
's/@''GNULIB_C32_APPLY_MAPPING''@/$(GL_GNULIB_C32_APPLY_MAPPING)/g' \
- -e
's/@''GNULIB_C32_APPLY_TYPE_TEST''@/$(GL_GNULIB_C32_APPLY_TYPE_TEST)/g' \
- -e
's/@''GNULIB_C32_GET_MAPPING''@/$(GL_GNULIB_C32_GET_MAPPING)/g' \
- -e
's/@''GNULIB_C32_GET_TYPE_TEST''@/$(GL_GNULIB_C32_GET_TYPE_TEST)/g' \
- -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \
- -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \
- -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \
- -e 's/@''GNULIB_MBRTOC16''@/$(GL_GNULIB_MBRTOC16)/g' \
- -e 's/@''GNULIB_MBRTOC32''@/$(GL_GNULIB_MBRTOC32)/g' \
- -e 's/@''GNULIB_MBSNRTOC32S''@/$(GL_GNULIB_MBSNRTOC32S)/g' \
- -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \
- -e 's/@''GNULIB_MBSRTOC32S''@/$(GL_GNULIB_MBSRTOC32S)/g' \
- -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \
- -e 's/@''GNULIB_MBSTOC32S''@/$(GL_GNULIB_MBSTOC32S)/g' \
- -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \
- -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \
- -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \
- -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \
- -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \
- -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \
- -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \
- -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \
- -e 's|@''HAVE_C32RTOMB''@|$(HAVE_C32RTOMB)|g' \
- -e 's|@''HAVE_MBRTOC16''@|$(HAVE_MBRTOC16)|g' \
- -e 's|@''HAVE_MBRTOC32''@|$(HAVE_MBRTOC32)|g' \
- -e 's|@''REPLACE_C32RTOMB''@|$(REPLACE_C32RTOMB)|g' \
- -e 's|@''REPLACE_MBRTOC16''@|$(REPLACE_MBRTOC16)|g' \
- -e 's|@''REPLACE_MBRTOC32''@|$(REPLACE_MBRTOC32)|g' \
- -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
- -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
- -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
- $(srcdir)/uchar.in.h > $@-t
- $(AM_V_at)mv $@-t $@
-MOSTLYCLEANFILES += uchar.h uchar.h-t
-
-EXTRA_DIST += uchar.in.h
-
-## end gnulib module uchar
-
## begin gnulib module unicase/base
BUILT_SOURCES += $(LIBUNISTRING_UNICASE_H)
@@ -2401,63 +2296,6 @@ EXTRA_DIST += wchar.in.h
## end gnulib module wchar
-## begin gnulib module wctype-h
-
-BUILT_SOURCES += wctype.h
-libgnu_la_SOURCES += wctype-h.c
-
-# We need the following in order to create <wctype.h> when the system
-# doesn't have one that works with the given compiler.
-wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H)
$(ARG_NONNULL_H) $(WARN_ON_USE_H)
- $(gl_V_at)$(SED_HEADER_STDOUT) \
- -e 's|@''GUARD_PREFIX''@|GL|g' \
- -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
- -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
- -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
- -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
- -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
- -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \
- -e
's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \
- -e 's/@''GNULIB_ISWBLANK''@/$(GL_GNULIB_ISWBLANK)/g' \
- -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \
- -e 's/@''GNULIB_ISWPUNCT''@/$(GL_GNULIB_ISWPUNCT)/g' \
- -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \
- -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \
- -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \
- -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \
- -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \
- -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
- -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
- -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
- -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
- -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
- -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
- -e 's/@''REPLACE_ISWDIGIT''@/$(REPLACE_ISWDIGIT)/g' \
- -e 's/@''REPLACE_ISWPUNCT''@/$(REPLACE_ISWPUNCT)/g' \
- -e 's/@''REPLACE_ISWXDIGIT''@/$(REPLACE_ISWXDIGIT)/g' \
- -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
- -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
- -e 's/@''REPLACE_WCTRANS''@/$(REPLACE_WCTRANS)/g' \
- -e 's/@''REPLACE_WCTYPE''@/$(REPLACE_WCTYPE)/g' \
- -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
- -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
- -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
- $(srcdir)/wctype.in.h > $@-t
- $(AM_V_at)mv $@-t $@
-MOSTLYCLEANFILES += wctype.h wctype.h-t
-
-EXTRA_DIST += wctype.in.h
-
-## end gnulib module wctype-h
-
-## begin gnulib module wcwidth
-
-if GL_COND_OBJ_WCWIDTH
-libgnu_la_SOURCES += wcwidth.c
-endif
-
-## end gnulib module wcwidth
-
## begin gnulib module xalloc-oversized
diff --git a/tp/Texinfo/XS/gnulib/lib/c32is-impl.h
b/tp/Texinfo/XS/gnulib/lib/c32is-impl.h
deleted file mode 100644
index fd916341ee..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c32is-impl.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Test whether a 32-bit wide character belongs to a specific character class.
- Copyright (C) 2020-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2020. */
-
-#include <wchar.h>
-#include <wctype.h>
-
-#ifdef __CYGWIN__
-# include <cygwin/version.h>
-#endif
-
-#if GNULIB_defined_mbstate_t
-# include "localcharset.h"
-# include "streq.h"
-#endif
-
-#if GL_CHAR32_T_IS_UNICODE
-# include "lc-charset-unicode.h"
-#endif
-
-#include "unictype.h"
-
-#if _GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t
-_GL_EXTERN_INLINE
-#endif
-int
-FUNC (wint_t wc)
-{
- /* The char32_t encoding of a multibyte character is defined by the way
- mbrtoc32() is defined. */
-
-#if GNULIB_defined_mbstate_t /* AIX, IRIX */
- /* mbrtoc32() is defined on top of mbtowc() for the non-UTF-8 locales
- and directly for the UTF-8 locales. */
- if (wc != WEOF)
- {
- const char *encoding = locale_charset ();
- if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
- return UCS_FUNC (wc);
- else
- return WCHAR_FUNC (wc);
- }
- else
- return 0;
-
-#elif HAVE_WORKING_MBRTOC32 /* glibc, Android */
- /* mbrtoc32() is essentially defined by the system libc. */
-
-# if _GL_WCHAR_T_IS_UCS4
- /* The char32_t encoding of a multibyte character is known to be the same as
- the wchar_t encoding. */
- return WCHAR_FUNC (wc);
-# else
- /* The char32_t encoding of a multibyte character is known to be UCS-4,
- different from the wchar_t encoding. */
- if (wc != WEOF)
- return UCS_FUNC (wc);
- else
- return 0;
-# endif
-
-#elif _GL_SMALL_WCHAR_T /* Cygwin, mingw, MSVC */
- /* The wchar_t encoding is UTF-16.
- The char32_t encoding is UCS-4. */
-
-# if defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007
- /* As an extension to POSIX, the iswalnum() function of Cygwin >= 1.7
- supports also wc arguments outside the Unicode BMP, that is, outside
- the 'wchar_t' range. See
- <https://lists.gnu.org/archive/html/bug-gnulib/2011-02/msg00019.html>
- = <https://cygwin.com/ml/cygwin/2011-02/msg00044.html>. */
- return WCHAR_FUNC (wc);
-# else
- if (wc == WEOF || wc == (wchar_t) wc)
- /* wc is in the range for the isw* functions. */
- return WCHAR_FUNC (wc);
- else
- return UCS_FUNC (wc);
-# endif
-
-#else /* macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Minix, Android */
- /* char32_t and wchar_t are equivalent. */
- static_assert (sizeof (char32_t) == sizeof (wchar_t));
-
-# if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION
- return UCS_FUNC (wc);
-# else
- return WCHAR_FUNC (wc);
-# endif
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/c32isupper.c
b/tp/Texinfo/XS/gnulib/lib/c32isupper.c
deleted file mode 100644
index bfd7e541a3..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c32isupper.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Test 32-bit wide character for being uppercase.
- Copyright (C) 2020-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-#define IN_C32ISUPPER
-/* Specification. */
-#include <uchar.h>
-
-#define FUNC c32isupper
-#define WCHAR_FUNC iswupper
-#define UCS_FUNC uc_is_upper
-#include "c32is-impl.h"
diff --git a/tp/Texinfo/XS/gnulib/lib/c32width.c
b/tp/Texinfo/XS/gnulib/lib/c32width.c
deleted file mode 100644
index 1bea29dfba..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/c32width.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Determine the number of screen columns needed for a 32-bit wide character.
- Copyright (C) 2020-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2023. */
-
-#include <config.h>
-
-#define IN_C32WIDTH
-/* Specification. */
-#include <uchar.h>
-
-#include <wchar.h>
-
-#ifdef __CYGWIN__
-# include <cygwin/version.h>
-#endif
-
-#if GNULIB_defined_mbstate_t
-# include "streq.h"
-#endif
-
-#include "localcharset.h"
-
-#if GL_CHAR32_T_IS_UNICODE
-# include "lc-charset-unicode.h"
-#endif
-
-#include "uniwidth.h"
-
-#if _GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t
-_GL_EXTERN_INLINE
-#endif
-int
-c32width (char32_t wc)
-{
- /* The char32_t encoding of a multibyte character is defined by the way
- mbrtoc32() is defined. */
-
-#if GNULIB_defined_mbstate_t /* AIX, IRIX */
- /* mbrtoc32() is defined on top of mbtowc() for the non-UTF-8 locales
- and directly for the UTF-8 locales. */
- const char *encoding = locale_charset ();
- if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
- return uc_width (wc, encoding);
- else
- return wcwidth (wc);
-
-#elif HAVE_WORKING_MBRTOC32 /* glibc, Android */
- /* mbrtoc32() is essentially defined by the system libc. */
-
-# if _GL_WCHAR_T_IS_UCS4
- /* The char32_t encoding of a multibyte character is known to be the same as
- the wchar_t encoding. */
- return wcwidth (wc);
-# else
- /* The char32_t encoding of a multibyte character is known to be UCS-4,
- different from the wchar_t encoding. */
- return uc_width (wc, locale_charset ());
-# endif
-
-#elif _GL_SMALL_WCHAR_T /* Cygwin, mingw, MSVC */
- /* The wchar_t encoding is UTF-16.
- The char32_t encoding is UCS-4. */
-
-# if defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007 && 0
- /* As an extension to POSIX, the wcwidth() function of Cygwin >= 1.7
- supports also wc arguments outside the Unicode BMP, that is, outside
- the 'wchar_t' range. See
-
<https://www.cygwin.com/cgit/newlib-cygwin/commit/?id=098a75dc51caa98f369d98a9809d773bc45329aa>.
- But the resulting values for these characters are not of good quality. */
- return wcwidth (wc);
-# else
- if (wc == (wchar_t) wc)
- /* wc is in the range for the wcwidth function. */
- return wcwidth (wc);
- else
- return uc_width (wc, locale_charset ());
-# endif
-
-#else /* macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Minix, Android */
- /* char32_t and wchar_t are equivalent. */
- static_assert (sizeof (char32_t) == sizeof (wchar_t));
-
-# if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION
- return uc_width (wc, locale_charset ());
-# endif
- return wcwidth (wc);
-#endif
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/localcharset.c
b/tp/Texinfo/XS/gnulib/lib/localcharset.c
deleted file mode 100644
index 7ed9c957db..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/localcharset.c
+++ /dev/null
@@ -1,1159 +0,0 @@
-/* Determine a canonical name for the current locale's character encoding.
-
- Copyright (C) 2000-2006, 2008-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Bruno Haible <bruno@clisp.org>. */
-
-#include <config.h>
-
-/* Specification. */
-#include "localcharset.h"
-
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET
-# define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */
-#endif
-
-#if defined _WIN32 && !defined __CYGWIN__
-# define WINDOWS_NATIVE
-# include <locale.h>
-#endif
-
-#if defined __EMX__
-/* Assume EMX program runs on OS/2, even if compiled under DOS. */
-# ifndef OS2
-# define OS2
-# endif
-#endif
-
-#if !defined WINDOWS_NATIVE
-# if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-# else
-# if 0 /* see comment regarding use of setlocale(), below */
-# include <locale.h>
-# endif
-# endif
-# ifdef __CYGWIN__
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-# endif
-#elif defined WINDOWS_NATIVE
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
- /* For the use of setlocale() below, the Gnulib override in setlocale.c is
- not needed; see the platform lists in setlocale_null.m4. */
-# undef setlocale
-#endif
-#if defined OS2
-# define INCL_DOS
-# include <os2.h>
-#endif
-
-/* For MB_CUR_MAX_L */
-#if defined DARWIN7
-# include <xlocale.h>
-#endif
-
-
-#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2
-
-/* On these platforms, we use a mapping from non-canonical encoding name
- to GNU canonical encoding name. */
-
-/* With glibc-2.1 or newer, we don't need any canonicalization,
- because glibc has iconv and both glibc and libiconv support all
- GNU canonical names directly. */
-# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__)
-
-struct table_entry
-{
- const char alias[11+1];
- const char canonical[11+1];
-};
-
-/* Table of platform-dependent mappings, sorted in ascending order. */
-static const struct table_entry alias_table[] =
- {
-# if defined __FreeBSD__ /* FreeBSD */
- /*{ "ARMSCII-8", "ARMSCII-8" },*/
- { "Big5", "BIG5" },
- { "C", "ASCII" },
- /*{ "CP1131", "CP1131" },*/
- /*{ "CP1251", "CP1251" },*/
- /*{ "CP866", "CP866" },*/
- /*{ "GB18030", "GB18030" },*/
- /*{ "GB2312", "GB2312" },*/
- /*{ "GBK", "GBK" },*/
- /*{ "ISCII-DEV", "?" },*/
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-13", "ISO-8859-13" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-9", "ISO-8859-9" },
- /*{ "KOI8-R", "KOI8-R" },*/
- /*{ "KOI8-U", "KOI8-U" },*/
- { "SJIS", "SHIFT_JIS" },
- { "US-ASCII", "ASCII" },
- { "eucCN", "GB2312" },
- { "eucJP", "EUC-JP" },
- { "eucKR", "EUC-KR" }
-# define alias_table_defined
-# endif
-# if defined __NetBSD__ /* NetBSD */
- { "646", "ASCII" },
- /*{ "ARMSCII-8", "ARMSCII-8" },*/
- /*{ "BIG5", "BIG5" },*/
- { "Big5-HKSCS", "BIG5-HKSCS" },
- /*{ "CP1251", "CP1251" },*/
- /*{ "CP866", "CP866" },*/
- /*{ "GB18030", "GB18030" },*/
- /*{ "GB2312", "GB2312" },*/
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-13", "ISO-8859-13" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-4", "ISO-8859-4" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-7", "ISO-8859-7" },
- /*{ "KOI8-R", "KOI8-R" },*/
- /*{ "KOI8-U", "KOI8-U" },*/
- /*{ "PT154", "PT154" },*/
- { "SJIS", "SHIFT_JIS" },
- { "eucCN", "GB2312" },
- { "eucJP", "EUC-JP" },
- { "eucKR", "EUC-KR" },
- { "eucTW", "EUC-TW" }
-# define alias_table_defined
-# endif
-# if defined __OpenBSD__ /* OpenBSD */
- { "646", "ASCII" },
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-13", "ISO-8859-13" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-4", "ISO-8859-4" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-7", "ISO-8859-7" },
- { "US-ASCII", "ASCII" }
-# define alias_table_defined
-# endif
-# if defined __APPLE__ && defined __MACH__ /* Mac OS X */
- /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is
- useless:
- - It returns the empty string when LANG is set to a locale of the
- form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
- LC_CTYPE file.
- - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
- the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
- - The documentation says:
- "... all code that calls BSD system routines should ensure
- that the const *char parameters of these routines are in UTF-8
- encoding. All BSD system functions expect their string
- parameters to be in UTF-8 encoding and nothing else."
- It also says
- "An additional caveat is that string parameters for files,
- paths, and other file-system entities must be in canonical
- UTF-8. In a canonical UTF-8 Unicode string, all decomposable
- characters are decomposed ..."
- but this is not true: You can pass non-decomposed UTF-8 strings
- to file system functions, and it is the OS which will convert
- them to decomposed UTF-8 before accessing the file system.
- - The Apple Terminal application displays UTF-8 by default.
- - However, other applications are free to use different encodings:
- - xterm uses ISO-8859-1 by default.
- - TextEdit uses MacRoman by default.
- We prefer UTF-8 over decomposed UTF-8-MAC because one should
- minimize the use of decomposed Unicode. Unfortunately, through the
- Darwin file system, decomposed UTF-8 strings are leaked into user
- space nevertheless.
- Then there are also the locales with encodings other than US-ASCII
- and UTF-8. These locales can be occasionally useful to users (e.g.
- when grepping through ISO-8859-1 encoded text files), when all their
- file names are in US-ASCII.
- */
- { "ARMSCII-8", "ARMSCII-8" },
- { "Big5", "BIG5" },
- { "Big5HKSCS", "BIG5-HKSCS" },
- { "CP1131", "CP1131" },
- { "CP1251", "CP1251" },
- { "CP866", "CP866" },
- { "CP949", "CP949" },
- { "GB18030", "GB18030" },
- { "GB2312", "GB2312" },
- { "GBK", "GBK" },
- /*{ "ISCII-DEV", "?" },*/
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-13", "ISO-8859-13" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-4", "ISO-8859-4" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-9", "ISO-8859-9" },
- { "KOI8-R", "KOI8-R" },
- { "KOI8-U", "KOI8-U" },
- { "PT154", "PT154" },
- { "SJIS", "SHIFT_JIS" },
- { "eucCN", "GB2312" },
- { "eucJP", "EUC-JP" },
- { "eucKR", "EUC-KR" }
-# define alias_table_defined
-# endif
-# if defined _AIX /* AIX */
- /*{ "GBK", "GBK" },*/
- { "IBM-1046", "CP1046" },
- { "IBM-1124", "CP1124" },
- { "IBM-1129", "CP1129" },
- { "IBM-1252", "CP1252" },
- { "IBM-850", "CP850" },
- { "IBM-856", "CP856" },
- { "IBM-921", "ISO-8859-13" },
- { "IBM-922", "CP922" },
- { "IBM-932", "CP932" },
- { "IBM-943", "CP943" },
- { "IBM-eucCN", "GB2312" },
- { "IBM-eucJP", "EUC-JP" },
- { "IBM-eucKR", "EUC-KR" },
- { "IBM-eucTW", "EUC-TW" },
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-6", "ISO-8859-6" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-8", "ISO-8859-8" },
- { "ISO8859-9", "ISO-8859-9" },
- { "TIS-620", "TIS-620" },
- /*{ "UTF-8", "UTF-8" },*/
- { "big5", "BIG5" }
-# define alias_table_defined
-# endif
-# if defined __hpux /* HP-UX */
- { "SJIS", "SHIFT_JIS" },
- { "arabic8", "HP-ARABIC8" },
- { "big5", "BIG5" },
- { "cp1251", "CP1251" },
- { "eucJP", "EUC-JP" },
- { "eucKR", "EUC-KR" },
- { "eucTW", "EUC-TW" },
- { "gb18030", "GB18030" },
- { "greek8", "HP-GREEK8" },
- { "hebrew8", "HP-HEBREW8" },
- { "hkbig5", "BIG5-HKSCS" },
- { "hp15CN", "GB2312" },
- { "iso88591", "ISO-8859-1" },
- { "iso885913", "ISO-8859-13" },
- { "iso885915", "ISO-8859-15" },
- { "iso88592", "ISO-8859-2" },
- { "iso88594", "ISO-8859-4" },
- { "iso88595", "ISO-8859-5" },
- { "iso88596", "ISO-8859-6" },
- { "iso88597", "ISO-8859-7" },
- { "iso88598", "ISO-8859-8" },
- { "iso88599", "ISO-8859-9" },
- { "kana8", "HP-KANA8" },
- { "koi8r", "KOI8-R" },
- { "roman8", "HP-ROMAN8" },
- { "tis620", "TIS-620" },
- { "turkish8", "HP-TURKISH8" },
- { "utf8", "UTF-8" }
-# define alias_table_defined
-# endif
-# if defined __sgi /* IRIX */
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-9", "ISO-8859-9" },
- { "eucCN", "GB2312" },
- { "eucJP", "EUC-JP" },
- { "eucKR", "EUC-KR" },
- { "eucTW", "EUC-TW" }
-# define alias_table_defined
-# endif
-# if defined __osf__ /* OSF/1 */
- /*{ "GBK", "GBK" },*/
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-4", "ISO-8859-4" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-8", "ISO-8859-8" },
- { "ISO8859-9", "ISO-8859-9" },
- { "KSC5601", "CP949" },
- { "SJIS", "SHIFT_JIS" },
- { "TACTIS", "TIS-620" },
- /*{ "UTF-8", "UTF-8" },*/
- { "big5", "BIG5" },
- { "cp850", "CP850" },
- { "dechanyu", "DEC-HANYU" },
- { "dechanzi", "GB2312" },
- { "deckanji", "DEC-KANJI" },
- { "deckorean", "EUC-KR" },
- { "eucJP", "EUC-JP" },
- { "eucKR", "EUC-KR" },
- { "eucTW", "EUC-TW" },
- { "sdeckanji", "EUC-JP" }
-# define alias_table_defined
-# endif
-# if defined __sun /* Solaris */
- { "5601", "EUC-KR" },
- { "646", "ASCII" },
- /*{ "BIG5", "BIG5" },*/
- { "Big5-HKSCS", "BIG5-HKSCS" },
- { "GB18030", "GB18030" },
- /*{ "GBK", "GBK" },*/
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-11", "TIS-620" },
- { "ISO8859-13", "ISO-8859-13" },
- { "ISO8859-15", "ISO-8859-15" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-3", "ISO-8859-3" },
- { "ISO8859-4", "ISO-8859-4" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-6", "ISO-8859-6" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-8", "ISO-8859-8" },
- { "ISO8859-9", "ISO-8859-9" },
- { "PCK", "SHIFT_JIS" },
- { "TIS620.2533", "TIS-620" },
- /*{ "UTF-8", "UTF-8" },*/
- { "ansi-1251", "CP1251" },
- { "cns11643", "EUC-TW" },
- { "eucJP", "EUC-JP" },
- { "gb2312", "GB2312" },
- { "koi8-r", "KOI8-R" }
-# define alias_table_defined
-# endif
-# if defined __minix /* Minix */
- { "646", "ASCII" }
-# define alias_table_defined
-# endif
-# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */
- { "CP1361", "JOHAB" },
- { "CP20127", "ASCII" },
- { "CP20866", "KOI8-R" },
- { "CP20936", "GB2312" },
- { "CP21866", "KOI8-RU" },
- { "CP28591", "ISO-8859-1" },
- { "CP28592", "ISO-8859-2" },
- { "CP28593", "ISO-8859-3" },
- { "CP28594", "ISO-8859-4" },
- { "CP28595", "ISO-8859-5" },
- { "CP28596", "ISO-8859-6" },
- { "CP28597", "ISO-8859-7" },
- { "CP28598", "ISO-8859-8" },
- { "CP28599", "ISO-8859-9" },
- { "CP28605", "ISO-8859-15" },
- { "CP38598", "ISO-8859-8" },
- { "CP51932", "EUC-JP" },
- { "CP51936", "GB2312" },
- { "CP51949", "EUC-KR" },
- { "CP51950", "EUC-TW" },
- { "CP54936", "GB18030" },
- { "CP65001", "UTF-8" },
- { "CP936", "GBK" }
-# define alias_table_defined
-# endif
-# if defined OS2 /* OS/2 */
- /* The list of encodings is taken from "List of OS/2 Codepages"
- by Alex Taylor:
- <http://altsan.org/os2/toolkits/uls/index.html#codepages>.
- See also "__convcp() of kLIBC":
-
<https://github.com/bitwiseworks/libc/blob/master/src/emx/src/lib/locale/__convcp.c>.
*/
- { "CP1004", "CP1252" },
- /*{ "CP1041", "CP943" },*/
- /*{ "CP1088", "CP949" },*/
- { "CP1089", "ISO-8859-6" },
- /*{ "CP1114", "CP950" },*/
- /*{ "CP1115", "GB2312" },*/
- { "CP1208", "UTF-8" },
- /*{ "CP1380", "GB2312" },*/
- { "CP1381", "GB2312" },
- { "CP1383", "GB2312" },
- { "CP1386", "GBK" },
- /*{ "CP301", "CP943" },*/
- { "CP3372", "EUC-JP" },
- { "CP4946", "CP850" },
- /*{ "CP5048", "JIS_X0208-1990" },*/
- /*{ "CP5049", "JIS_X0212-1990" },*/
- /*{ "CP5067", "KS_C_5601-1987" },*/
- { "CP813", "ISO-8859-7" },
- { "CP819", "ISO-8859-1" },
- { "CP878", "KOI8-R" },
- /*{ "CP897", "CP943" },*/
- { "CP912", "ISO-8859-2" },
- { "CP913", "ISO-8859-3" },
- { "CP914", "ISO-8859-4" },
- { "CP915", "ISO-8859-5" },
- { "CP916", "ISO-8859-8" },
- { "CP920", "ISO-8859-9" },
- { "CP921", "ISO-8859-13" },
- { "CP923", "ISO-8859-15" },
- /*{ "CP941", "CP943" },*/
- /*{ "CP947", "CP950" },*/
- /*{ "CP951", "CP949" },*/
- /*{ "CP952", "JIS_X0208-1990" },*/
- /*{ "CP953", "JIS_X0212-1990" },*/
- { "CP954", "EUC-JP" },
- { "CP964", "EUC-TW" },
- { "CP970", "EUC-KR" },
- /*{ "CP971", "KS_C_5601-1987" },*/
- { "IBM-1004", "CP1252" },
- /*{ "IBM-1006", "?" },*/
- /*{ "IBM-1008", "?" },*/
- /*{ "IBM-1041", "CP943" },*/
- /*{ "IBM-1051", "?" },*/
- /*{ "IBM-1088", "CP949" },*/
- { "IBM-1089", "ISO-8859-6" },
- /*{ "IBM-1098", "?" },*/
- /*{ "IBM-1114", "CP950" },*/
- /*{ "IBM-1115", "GB2312" },*/
- /*{ "IBM-1116", "?" },*/
- /*{ "IBM-1117", "?" },*/
- /*{ "IBM-1118", "?" },*/
- /*{ "IBM-1119", "?" },*/
- { "IBM-1124", "CP1124" },
- { "IBM-1125", "CP1125" },
- { "IBM-1131", "CP1131" },
- { "IBM-1208", "UTF-8" },
- { "IBM-1250", "CP1250" },
- { "IBM-1251", "CP1251" },
- { "IBM-1252", "CP1252" },
- { "IBM-1253", "CP1253" },
- { "IBM-1254", "CP1254" },
- { "IBM-1255", "CP1255" },
- { "IBM-1256", "CP1256" },
- { "IBM-1257", "CP1257" },
- /*{ "IBM-1275", "?" },*/
- /*{ "IBM-1276", "?" },*/
- /*{ "IBM-1277", "?" },*/
- /*{ "IBM-1280", "?" },*/
- /*{ "IBM-1281", "?" },*/
- /*{ "IBM-1282", "?" },*/
- /*{ "IBM-1283", "?" },*/
- /*{ "IBM-1380", "GB2312" },*/
- { "IBM-1381", "GB2312" },
- { "IBM-1383", "GB2312" },
- { "IBM-1386", "GBK" },
- /*{ "IBM-301", "CP943" },*/
- { "IBM-3372", "EUC-JP" },
- { "IBM-367", "ASCII" },
- { "IBM-437", "CP437" },
- { "IBM-4946", "CP850" },
- /*{ "IBM-5048", "JIS_X0208-1990" },*/
- /*{ "IBM-5049", "JIS_X0212-1990" },*/
- /*{ "IBM-5067", "KS_C_5601-1987" },*/
- { "IBM-813", "ISO-8859-7" },
- { "IBM-819", "ISO-8859-1" },
- { "IBM-850", "CP850" },
- /*{ "IBM-851", "?" },*/
- { "IBM-852", "CP852" },
- { "IBM-855", "CP855" },
- { "IBM-856", "CP856" },
- { "IBM-857", "CP857" },
- /*{ "IBM-859", "?" },*/
- { "IBM-860", "CP860" },
- { "IBM-861", "CP861" },
- { "IBM-862", "CP862" },
- { "IBM-863", "CP863" },
- { "IBM-864", "CP864" },
- { "IBM-865", "CP865" },
- { "IBM-866", "CP866" },
- /*{ "IBM-868", "?" },*/
- { "IBM-869", "CP869" },
- { "IBM-874", "CP874" },
- { "IBM-878", "KOI8-R" },
- /*{ "IBM-895", "?" },*/
- /*{ "IBM-897", "CP943" },*/
- /*{ "IBM-907", "?" },*/
- /*{ "IBM-909", "?" },*/
- { "IBM-912", "ISO-8859-2" },
- { "IBM-913", "ISO-8859-3" },
- { "IBM-914", "ISO-8859-4" },
- { "IBM-915", "ISO-8859-5" },
- { "IBM-916", "ISO-8859-8" },
- { "IBM-920", "ISO-8859-9" },
- { "IBM-921", "ISO-8859-13" },
- { "IBM-922", "CP922" },
- { "IBM-923", "ISO-8859-15" },
- { "IBM-932", "CP932" },
- /*{ "IBM-941", "CP943" },*/
- /*{ "IBM-942", "?" },*/
- { "IBM-943", "CP943" },
- /*{ "IBM-947", "CP950" },*/
- { "IBM-949", "CP949" },
- { "IBM-950", "CP950" },
- /*{ "IBM-951", "CP949" },*/
- /*{ "IBM-952", "JIS_X0208-1990" },*/
- /*{ "IBM-953", "JIS_X0212-1990" },*/
- { "IBM-954", "EUC-JP" },
- /*{ "IBM-955", "?" },*/
- { "IBM-964", "EUC-TW" },
- { "IBM-970", "EUC-KR" },
- /*{ "IBM-971", "KS_C_5601-1987" },*/
- { "IBM-eucCN", "GB2312" },
- { "IBM-eucJP", "EUC-JP" },
- { "IBM-eucKR", "EUC-KR" },
- { "IBM-eucTW", "EUC-TW" },
- { "IBM33722", "EUC-JP" },
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-3", "ISO-8859-3" },
- { "ISO8859-4", "ISO-8859-4" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-6", "ISO-8859-6" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-8", "ISO-8859-8" },
- { "ISO8859-9", "ISO-8859-9" },
- /*{ "JISX0201-1976", "JISX0201-1976" },*/
- /*{ "JISX0208-1978", "?" },*/
- /*{ "JISX0208-1983", "JIS_X0208-1983" },*/
- /*{ "JISX0208-1990", "JIS_X0208-1990" },*/
- /*{ "JISX0212-1990", "JIS_X0212-1990" },*/
- /*{ "KSC5601-1987", "KS_C_5601-1987" },*/
- { "SJIS-1", "CP943" },
- { "SJIS-2", "CP943" },
- { "eucJP", "EUC-JP" },
- { "eucKR", "EUC-KR" },
- { "eucTW-1993", "EUC-TW" }
-# define alias_table_defined
-# endif
-# if defined VMS /* OpenVMS */
- /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
- "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
- section 10.7 "Handling Different Character Sets". */
- { "DECHANYU", "DEC-HANYU" },
- { "DECHANZI", "GB2312" },
- { "DECKANJI", "DEC-KANJI" },
- { "DECKOREAN", "EUC-KR" },
- { "ISO8859-1", "ISO-8859-1" },
- { "ISO8859-2", "ISO-8859-2" },
- { "ISO8859-5", "ISO-8859-5" },
- { "ISO8859-7", "ISO-8859-7" },
- { "ISO8859-8", "ISO-8859-8" },
- { "ISO8859-9", "ISO-8859-9" },
- { "SDECKANJI", "EUC-JP" },
- { "SJIS", "SHIFT_JIS" },
- { "eucJP", "EUC-JP" },
- { "eucTW", "EUC-TW" }
-# define alias_table_defined
-# endif
-# ifndef alias_table_defined
- /* Just a dummy entry, to avoid a C syntax error. */
- { "", "" }
-# endif
- };
-
-# endif
-
-#else
-
-/* On these platforms, we use a mapping from locale name to GNU canonical
- encoding name. */
-
-struct table_entry
-{
- const char locale[17+1];
- const char canonical[11+1];
-};
-
-/* Table of platform-dependent mappings, sorted in ascending order. */
-static const struct table_entry locale_table[] =
- {
-# if defined __FreeBSD__ /* FreeBSD 4.2 */
- { "cs_CZ.ISO_8859-2", "ISO-8859-2" },
- { "da_DK.DIS_8859-15", "ISO-8859-15" },
- { "da_DK.ISO_8859-1", "ISO-8859-1" },
- { "de_AT.DIS_8859-15", "ISO-8859-15" },
- { "de_AT.ISO_8859-1", "ISO-8859-1" },
- { "de_CH.DIS_8859-15", "ISO-8859-15" },
- { "de_CH.ISO_8859-1", "ISO-8859-1" },
- { "de_DE.DIS_8859-15", "ISO-8859-15" },
- { "de_DE.ISO_8859-1", "ISO-8859-1" },
- { "en_AU.DIS_8859-15", "ISO-8859-15" },
- { "en_AU.ISO_8859-1", "ISO-8859-1" },
- { "en_CA.DIS_8859-15", "ISO-8859-15" },
- { "en_CA.ISO_8859-1", "ISO-8859-1" },
- { "en_GB.DIS_8859-15", "ISO-8859-15" },
- { "en_GB.ISO_8859-1", "ISO-8859-1" },
- { "en_US.DIS_8859-15", "ISO-8859-15" },
- { "en_US.ISO_8859-1", "ISO-8859-1" },
- { "es_ES.DIS_8859-15", "ISO-8859-15" },
- { "es_ES.ISO_8859-1", "ISO-8859-1" },
- { "fi_FI.DIS_8859-15", "ISO-8859-15" },
- { "fi_FI.ISO_8859-1", "ISO-8859-1" },
- { "fr_BE.DIS_8859-15", "ISO-8859-15" },
- { "fr_BE.ISO_8859-1", "ISO-8859-1" },
- { "fr_CA.DIS_8859-15", "ISO-8859-15" },
- { "fr_CA.ISO_8859-1", "ISO-8859-1" },
- { "fr_CH.DIS_8859-15", "ISO-8859-15" },
- { "fr_CH.ISO_8859-1", "ISO-8859-1" },
- { "fr_FR.DIS_8859-15", "ISO-8859-15" },
- { "fr_FR.ISO_8859-1", "ISO-8859-1" },
- { "hr_HR.ISO_8859-2", "ISO-8859-2" },
- { "hu_HU.ISO_8859-2", "ISO-8859-2" },
- { "is_IS.DIS_8859-15", "ISO-8859-15" },
- { "is_IS.ISO_8859-1", "ISO-8859-1" },
- { "it_CH.DIS_8859-15", "ISO-8859-15" },
- { "it_CH.ISO_8859-1", "ISO-8859-1" },
- { "it_IT.DIS_8859-15", "ISO-8859-15" },
- { "it_IT.ISO_8859-1", "ISO-8859-1" },
- { "ja_JP.EUC", "EUC-JP" },
- { "ja_JP.SJIS", "SHIFT_JIS" },
- { "ja_JP.Shift_JIS", "SHIFT_JIS" },
- { "ko_KR.EUC", "EUC-KR" },
- { "la_LN.ASCII", "ASCII" },
- { "la_LN.DIS_8859-15", "ISO-8859-15" },
- { "la_LN.ISO_8859-1", "ISO-8859-1" },
- { "la_LN.ISO_8859-2", "ISO-8859-2" },
- { "la_LN.ISO_8859-4", "ISO-8859-4" },
- { "lt_LN.ASCII", "ASCII" },
- { "lt_LN.DIS_8859-15", "ISO-8859-15" },
- { "lt_LN.ISO_8859-1", "ISO-8859-1" },
- { "lt_LN.ISO_8859-2", "ISO-8859-2" },
- { "lt_LT.ISO_8859-4", "ISO-8859-4" },
- { "nl_BE.DIS_8859-15", "ISO-8859-15" },
- { "nl_BE.ISO_8859-1", "ISO-8859-1" },
- { "nl_NL.DIS_8859-15", "ISO-8859-15" },
- { "nl_NL.ISO_8859-1", "ISO-8859-1" },
- { "no_NO.DIS_8859-15", "ISO-8859-15" },
- { "no_NO.ISO_8859-1", "ISO-8859-1" },
- { "pl_PL.ISO_8859-2", "ISO-8859-2" },
- { "pt_PT.DIS_8859-15", "ISO-8859-15" },
- { "pt_PT.ISO_8859-1", "ISO-8859-1" },
- { "ru_RU.CP866", "CP866" },
- { "ru_RU.ISO_8859-5", "ISO-8859-5" },
- { "ru_RU.KOI8-R", "KOI8-R" },
- { "ru_SU.CP866", "CP866" },
- { "ru_SU.ISO_8859-5", "ISO-8859-5" },
- { "ru_SU.KOI8-R", "KOI8-R" },
- { "sl_SI.ISO_8859-2", "ISO-8859-2" },
- { "sv_SE.DIS_8859-15", "ISO-8859-15" },
- { "sv_SE.ISO_8859-1", "ISO-8859-1" },
- { "uk_UA.KOI8-U", "KOI8-U" },
- { "zh_CN.EUC", "GB2312" },
- { "zh_TW.BIG5", "BIG5" },
- { "zh_TW.Big5", "BIG5" }
-# define locale_table_defined
-# endif
-# if defined __DJGPP__ /* DOS / DJGPP
2.03 */
- /* The encodings given here may not all be correct.
- If you find that the encoding given for your language and
- country is not the one your DOS machine actually uses, just
- correct it in this file, and send a mail to
- Juan Manuel Guerrero <juan.guerrero@gmx.de>
- and <bug-gnulib@gnu.org>. */
- { "C", "ASCII" },
- { "ar", "CP864" },
- { "ar_AE", "CP864" },
- { "ar_DZ", "CP864" },
- { "ar_EG", "CP864" },
- { "ar_IQ", "CP864" },
- { "ar_IR", "CP864" },
- { "ar_JO", "CP864" },
- { "ar_KW", "CP864" },
- { "ar_MA", "CP864" },
- { "ar_OM", "CP864" },
- { "ar_QA", "CP864" },
- { "ar_SA", "CP864" },
- { "ar_SY", "CP864" },
- { "be", "CP866" },
- { "be_BE", "CP866" },
- { "bg", "CP866" }, /* not CP855 ?? */
- { "bg_BG", "CP866" }, /* not CP855 ?? */
- { "ca", "CP850" },
- { "ca_ES", "CP850" },
- { "cs", "CP852" },
- { "cs_CZ", "CP852" },
- { "da", "CP865" }, /* not CP850 ?? */
- { "da_DK", "CP865" }, /* not CP850 ?? */
- { "de", "CP850" },
- { "de_AT", "CP850" },
- { "de_CH", "CP850" },
- { "de_DE", "CP850" },
- { "el", "CP869" },
- { "el_GR", "CP869" },
- { "en", "CP850" },
- { "en_AU", "CP850" }, /* not CP437 ?? */
- { "en_CA", "CP850" },
- { "en_GB", "CP850" },
- { "en_NZ", "CP437" },
- { "en_US", "CP437" },
- { "en_ZA", "CP850" }, /* not CP437 ?? */
- { "eo", "CP850" },
- { "eo_EO", "CP850" },
- { "es", "CP850" },
- { "es_AR", "CP850" },
- { "es_BO", "CP850" },
- { "es_CL", "CP850" },
- { "es_CO", "CP850" },
- { "es_CR", "CP850" },
- { "es_CU", "CP850" },
- { "es_DO", "CP850" },
- { "es_EC", "CP850" },
- { "es_ES", "CP850" },
- { "es_GT", "CP850" },
- { "es_HN", "CP850" },
- { "es_MX", "CP850" },
- { "es_NI", "CP850" },
- { "es_PA", "CP850" },
- { "es_PE", "CP850" },
- { "es_PY", "CP850" },
- { "es_SV", "CP850" },
- { "es_UY", "CP850" },
- { "es_VE", "CP850" },
- { "et", "CP850" },
- { "et_EE", "CP850" },
- { "eu", "CP850" },
- { "eu_ES", "CP850" },
- { "fi", "CP850" },
- { "fi_FI", "CP850" },
- { "fr", "CP850" },
- { "fr_BE", "CP850" },
- { "fr_CA", "CP850" },
- { "fr_CH", "CP850" },
- { "fr_FR", "CP850" },
- { "ga", "CP850" },
- { "ga_IE", "CP850" },
- { "gd", "CP850" },
- { "gd_GB", "CP850" },
- { "gl", "CP850" },
- { "gl_ES", "CP850" },
- { "he", "CP862" },
- { "he_IL", "CP862" },
- { "hr", "CP852" },
- { "hr_HR", "CP852" },
- { "hu", "CP852" },
- { "hu_HU", "CP852" },
- { "id", "CP850" }, /* not CP437 ?? */
- { "id_ID", "CP850" }, /* not CP437 ?? */
- { "is", "CP861" }, /* not CP850 ?? */
- { "is_IS", "CP861" }, /* not CP850 ?? */
- { "it", "CP850" },
- { "it_CH", "CP850" },
- { "it_IT", "CP850" },
- { "ja", "CP932" },
- { "ja_JP", "CP932" },
- { "kr", "CP949" }, /* not CP934 ?? */
- { "kr_KR", "CP949" }, /* not CP934 ?? */
- { "lt", "CP775" },
- { "lt_LT", "CP775" },
- { "lv", "CP775" },
- { "lv_LV", "CP775" },
- { "mk", "CP866" }, /* not CP855 ?? */
- { "mk_MK", "CP866" }, /* not CP855 ?? */
- { "mt", "CP850" },
- { "mt_MT", "CP850" },
- { "nb", "CP865" }, /* not CP850 ?? */
- { "nb_NO", "CP865" }, /* not CP850 ?? */
- { "nl", "CP850" },
- { "nl_BE", "CP850" },
- { "nl_NL", "CP850" },
- { "nn", "CP865" }, /* not CP850 ?? */
- { "nn_NO", "CP865" }, /* not CP850 ?? */
- { "no", "CP865" }, /* not CP850 ?? */
- { "no_NO", "CP865" }, /* not CP850 ?? */
- { "pl", "CP852" },
- { "pl_PL", "CP852" },
- { "pt", "CP850" },
- { "pt_BR", "CP850" },
- { "pt_PT", "CP850" },
- { "ro", "CP852" },
- { "ro_RO", "CP852" },
- { "ru", "CP866" },
- { "ru_RU", "CP866" },
- { "sk", "CP852" },
- { "sk_SK", "CP852" },
- { "sl", "CP852" },
- { "sl_SI", "CP852" },
- { "sq", "CP852" },
- { "sq_AL", "CP852" },
- { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */
- { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */
- { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */
- { "sv", "CP850" },
- { "sv_SE", "CP850" },
- { "th", "CP874" },
- { "th_TH", "CP874" },
- { "tr", "CP857" },
- { "tr_TR", "CP857" },
- { "uk", "CP1125" },
- { "uk_UA", "CP1125" },
- { "zh_CN", "GBK" },
- { "zh_TW", "CP950" } /* not CP938 ?? */
-# define locale_table_defined
-# endif
-# ifndef locale_table_defined
- /* Just a dummy entry, to avoid a C syntax error. */
- { "", "" }
-# endif
- };
-
-#endif
-
-
-/* Determine the current locale's character encoding, and canonicalize it
- into one of the canonical names listed below.
- The result must not be freed; it is statically allocated. The result
- becomes invalid when setlocale() is used to change the global locale, or
- when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG
- is changed; threads in multithreaded programs should not do this.
- If the canonical name cannot be determined, the result is a non-canonical
- name. */
-
-#ifdef STATIC
-STATIC
-#endif
-const char *
-locale_charset (void)
-{
- const char *codeset;
-
- /* This function must be multithread-safe. To achieve this without using
- thread-local storage, we use a simple strcpy or memcpy to fill this static
- buffer. Filling it through, for example, strcpy + strcat would not be
- guaranteed to leave the buffer's contents intact if another thread is
- currently accessing it. If necessary, the contents is first assembled in
- a stack-allocated buffer. */
-
-#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2
-
-# if HAVE_LANGINFO_CODESET
-
- /* Most systems support nl_langinfo (CODESET) nowadays. */
- codeset = nl_langinfo (CODESET);
-
-# ifdef __CYGWIN__
- /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always
- returns "US-ASCII". Return the suffix of the locale name from the
- environment variables (if present) or the codepage as a number. */
- if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
- {
- const char *locale;
- static char resultbuf[2 + 10 + 1];
-
- locale = getenv ("LC_ALL");
- if (locale == NULL || locale[0] == '\0')
- {
- locale = getenv ("LC_CTYPE");
- if (locale == NULL || locale[0] == '\0')
- locale = getenv ("LANG");
- }
- if (locale != NULL && locale[0] != '\0')
- {
- /* If the locale name contains an encoding after the dot, return
- it. */
- const char *dot = strchr (locale, '.');
-
- if (dot != NULL)
- {
- const char *modifier;
-
- dot++;
- /* Look for the possible @... trailer and remove it, if any. */
- modifier = strchr (dot, '@');
- if (modifier == NULL)
- return dot;
- if (modifier - dot < sizeof (resultbuf))
- {
- /* This way of filling resultbuf is multithread-safe. */
- memcpy (resultbuf, dot, modifier - dot);
- resultbuf [modifier - dot] = '\0';
- return resultbuf;
- }
- }
- }
-
- /* The Windows API has a function returning the locale's codepage as a
- number: GetACP(). This encoding is used by Cygwin, unless the user
- has set the environment variable CYGWIN=codepage:oem (which very few
- people do).
- Output directed to console windows needs to be converted (to
- GetOEMCP() if the console is using a raster font, or to
- GetConsoleOutputCP() if it is using a TrueType font). Cygwin does
- this conversion transparently (see winsup/cygwin/fhandler_console.cc),
- converting to GetConsoleOutputCP(). This leads to correct results,
- except when SetConsoleOutputCP has been called and a raster font is
- in use. */
- {
- char buf[2 + 10 + 1];
-
- sprintf (buf, "CP%u", GetACP ());
- strcpy (resultbuf, buf);
- codeset = resultbuf;
- }
- }
-# endif
-
- if (codeset == NULL)
- /* The canonical name cannot be determined. */
- codeset = "";
-
-# elif defined WINDOWS_NATIVE
-
- char buf[2 + 10 + 1];
- static char resultbuf[2 + 10 + 1];
-
- /* The Windows API has a function returning the locale's codepage as
- a number, but the value doesn't change according to what the
- 'setlocale' call specified. So we use it as a last resort, in
- case the string returned by 'setlocale' doesn't specify the
- codepage. */
- char *current_locale = setlocale (LC_CTYPE, NULL);
- char *pdot = strrchr (current_locale, '.');
-
- if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf))
- sprintf (buf, "CP%s", pdot + 1);
- else
- {
- /* The Windows API has a function returning the locale's codepage as a
- number: GetACP().
- When the output goes to a console window, it needs to be provided in
- GetOEMCP() encoding if the console is using a raster font, or in
- GetConsoleOutputCP() encoding if it is using a TrueType font.
- But in GUI programs and for output sent to files and pipes, GetACP()
- encoding is the best bet. */
- sprintf (buf, "CP%u", GetACP ());
- }
- /* For a locale name such as "French_France.65001", in Windows 10,
- setlocale now returns "French_France.utf8" instead. */
- if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0)
- codeset = "UTF-8";
- else
- {
- strcpy (resultbuf, buf);
- codeset = resultbuf;
- }
-
-# elif defined OS2
-
- const char *locale;
- static char resultbuf[2 + 10 + 1];
- ULONG cp[3];
- ULONG cplen;
-
- codeset = NULL;
-
- /* Allow user to override the codeset, as set in the operating system,
- with standard language environment variables. */
- locale = getenv ("LC_ALL");
- if (locale == NULL || locale[0] == '\0')
- {
- locale = getenv ("LC_CTYPE");
- if (locale == NULL || locale[0] == '\0')
- locale = getenv ("LANG");
- }
- if (locale != NULL && locale[0] != '\0')
- {
- /* If the locale name contains an encoding after the dot, return it. */
- const char *dot = strchr (locale, '.');
-
- if (dot != NULL)
- {
- const char *modifier;
-
- dot++;
- /* Look for the possible @... trailer and remove it, if any. */
- modifier = strchr (dot, '@');
- if (modifier == NULL)
- return dot;
- if (modifier - dot < sizeof (resultbuf))
- {
- /* This way of filling resultbuf is multithread-safe. */
- memcpy (resultbuf, dot, modifier - dot);
- resultbuf [modifier - dot] = '\0';
- return resultbuf;
- }
- }
-
- /* For the POSIX locale, don't use the system's codepage. */
- if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0)
- codeset = "";
- }
-
- if (codeset == NULL)
- {
- /* OS/2 has a function returning the locale's codepage as a number. */
- if (DosQueryCp (sizeof (cp), cp, &cplen))
- codeset = "";
- else
- {
- char buf[2 + 10 + 1];
-
- sprintf (buf, "CP%u", cp[0]);
- strcpy (resultbuf, buf);
- codeset = resultbuf;
- }
- }
-
-# else
-
-# error "Add code for other platforms here."
-
-# endif
-
- /* Resolve alias. */
- {
-# ifdef alias_table_defined
- /* On some platforms, UTF-8 locales are the most frequently used ones.
- Speed up the common case and slow down the less common cases by
- testing for this case first. */
-# if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) ||
defined __sun || defined __CYGWIN__
- if (strcmp (codeset, "UTF-8") == 0)
- goto done_table_lookup;
- else
-# endif
- {
- const struct table_entry * const table = alias_table;
- size_t const table_size =
- sizeof (alias_table) / sizeof (struct table_entry);
- /* The table is sorted. Perform a binary search. */
- size_t hi = table_size;
- size_t lo = 0;
- while (lo < hi)
- {
- /* Invariant:
- for i < lo, strcmp (table[i].alias, codeset) < 0,
- for i >= hi, strcmp (table[i].alias, codeset) > 0. */
- size_t mid = (hi + lo) >> 1; /* >= lo, < hi */
- int cmp = strcmp (table[mid].alias, codeset);
- if (cmp < 0)
- lo = mid + 1;
- else if (cmp > 0)
- hi = mid;
- else
- {
- /* Found an i with
- strcmp (table[i].alias, codeset) == 0. */
- codeset = table[mid].canonical;
- goto done_table_lookup;
- }
- }
- }
- if (0)
- done_table_lookup: ;
- else
-# endif
- {
- /* Did not find it in the table. */
- /* On Mac OS X, all modern locales use the UTF-8 encoding.
- BeOS and Haiku have a single locale, and it has UTF-8 encoding. */
-# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined
__HAIKU__
- codeset = "UTF-8";
-# else
- /* Don't return an empty string. GNU libc and GNU libiconv interpret
- the empty string as denoting "the locale's character encoding",
- thus GNU libiconv would call this function a second time. */
- if (codeset[0] == '\0')
- codeset = "ASCII";
-# endif
- }
- }
-
-#else
-
- /* On old systems which lack it, use setlocale or getenv. */
- const char *locale = NULL;
-
- /* But most old systems don't have a complete set of locales. Some
- (like DJGPP) have only the C locale. Therefore we don't use setlocale
- here; it would return "C" when it doesn't support the locale name the
- user has set. */
-# if 0
- locale = setlocale (LC_CTYPE, NULL);
-# endif
- if (locale == NULL || locale[0] == '\0')
- {
- locale = getenv ("LC_ALL");
- if (locale == NULL || locale[0] == '\0')
- {
- locale = getenv ("LC_CTYPE");
- if (locale == NULL || locale[0] == '\0')
- locale = getenv ("LANG");
- if (locale == NULL)
- locale = "";
- }
- }
-
- /* Map locale name to canonical encoding name. */
- {
-# ifdef locale_table_defined
- const struct table_entry * const table = locale_table;
- size_t const table_size =
- sizeof (locale_table) / sizeof (struct table_entry);
- /* The table is sorted. Perform a binary search. */
- size_t hi = table_size;
- size_t lo = 0;
- while (lo < hi)
- {
- /* Invariant:
- for i < lo, strcmp (table[i].locale, locale) < 0,
- for i >= hi, strcmp (table[i].locale, locale) > 0. */
- size_t mid = (hi + lo) >> 1; /* >= lo, < hi */
- int cmp = strcmp (table[mid].locale, locale);
- if (cmp < 0)
- lo = mid + 1;
- else if (cmp > 0)
- hi = mid;
- else
- {
- /* Found an i with
- strcmp (table[i].locale, locale) == 0. */
- codeset = table[mid].canonical;
- goto done_table_lookup;
- }
- }
- if (0)
- done_table_lookup: ;
- else
-# endif
- {
- /* Did not find it in the table. */
- /* On Mac OS X, all modern locales use the UTF-8 encoding.
- BeOS and Haiku have a single locale, and it has UTF-8 encoding. */
-# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined
__HAIKU__
- codeset = "UTF-8";
-# else
- /* The canonical name cannot be determined. */
- /* Don't return an empty string. GNU libc and GNU libiconv interpret
- the empty string as denoting "the locale's character encoding",
- thus GNU libiconv would call this function a second time. */
- codeset = "ASCII";
-# endif
- }
- }
-
-#endif
-
-#ifdef DARWIN7
- /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8"
- (the default codeset) does not work when MB_CUR_MAX is 1. */
- if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1)
- codeset = "ASCII";
-#endif
-
- return codeset;
-}
diff --git a/tp/Texinfo/XS/gnulib/lib/uchar.in.h
b/tp/Texinfo/XS/gnulib/lib/uchar.in.h
deleted file mode 100644
index 1856aec823..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/uchar.in.h
+++ /dev/null
@@ -1,910 +0,0 @@
-/* <uchar.h> substitute - 16-bit and 32-bit wide character types.
- Copyright (C) 2019-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2019. */
-
-/*
- * ISO C 23 <uchar.h> for platforms that lack it.
- */
-
-#ifndef _@GUARD_PREFIX@_UCHAR_H
-
-#if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-#endif
-@PRAGMA_COLUMNS@
-
-/* The include_next requires a split double-inclusion guard. */
-#if @HAVE_UCHAR_H@
-# if defined __HAIKU__
-/* Work around <https://dev.haiku-os.org/ticket/17040>. */
-# include <stdint.h>
-# endif
-/* On AIX 7.2 with xlclang++, /usr/include/uchar.h produces compilation errors
- because it contains typedef definitions of char16_t and char32_t, however
- char16_t and char32_t are keywords in this situation. To work around it,
- define char16_t and char32_t as macros. */
-# if defined __cplusplus && defined _AIX && defined __ibmxl__ && defined
__clang__
-# define char16_t gl_char16_t
-# define char32_t gl_char32_t
-# endif
-# @INCLUDE_NEXT@ @NEXT_UCHAR_H@
-#endif
-
-#ifndef _@GUARD_PREFIX@_UCHAR_H
-#define _@GUARD_PREFIX@_UCHAR_H
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_BEGIN_C_LINKAGE,
- _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-/* Get uint_least16_t, uint_least32_t. */
-#include <stdint.h>
-
-/* Get mbstate_t, size_t. */
-#include <wchar.h>
-
-/* For the inline functions. */
-#include <string.h>
-#include <wctype.h>
-
-/* The __attribute__ feature is available in gcc versions 2.5 and later.
- The attribute __pure__ was added in gcc 2.96. */
-#ifndef _GL_ATTRIBUTE_PURE
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined
__clang__
-# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-# define _GL_ATTRIBUTE_PURE /* empty */
-# endif
-#endif
-
-/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
-
-/* The definition of _GL_ARG_NONNULL is copied here. */
-
-/* The definition of _GL_WARN_ON_USE is copied here. */
-
-
-_GL_INLINE_HEADER_BEGIN
-
-
-#if !(@HAVE_UCHAR_H@ || (defined __cplusplus && @CXX_HAS_CHAR8_TYPE@))
-
-/* An 8-bit variant of wchar_t.
- Note: This type is only mandated by ISO C 23 or newer, and it does
- denote UTF-8 units. */
-typedef unsigned char char8_t;
-
-#elif @GNULIBHEADERS_OVERRIDE_CHAR8_T@
-
-typedef unsigned char gl_char8_t;
-# define char8_t gl_char8_t
-
-#endif
-
-#if !(@HAVE_UCHAR_H@ || (defined __cplusplus && @CXX_HAS_UCHAR_TYPES@))
-
-/* A 16-bit variant of wchar_t.
- Note: This type is only mandated by ISO C 11 or newer. In ISO C 23
- and newer, it denotes UTF-16 units; in older versions of ISO C it did
- so only on platforms on which __STDC_UTF_16__ was defined. */
-typedef uint_least16_t char16_t;
-
-#elif @GNULIBHEADERS_OVERRIDE_CHAR16_T@
-
-typedef uint_least16_t gl_char16_t;
-# define char16_t gl_char16_t
-
-#endif
-
-#if !(@HAVE_UCHAR_H@ || (defined __cplusplus && @CXX_HAS_UCHAR_TYPES@))
-
-/* A 32-bit variant of wchar_t.
- Note: This type is only mandated by ISO C 11 or newer. In ISO C 23
- and newer, it denotes UTF-32 code points; in older versions of ISO C
- it did so only on platforms on which __STDC_UTF_32__ was defined.
- In gnulib, we guarantee that it denotes UTF-32 code points if and
- only if the module 'uchar-c23' is in use. */
-typedef uint_least32_t char32_t;
-
-#elif @GNULIBHEADERS_OVERRIDE_CHAR32_T@
-
-typedef uint_least32_t gl_char32_t;
-# define char32_t gl_char32_t
-
-#endif
-
-/* Define if a 'char32_t' can hold more characters than a 'wchar_t'. */
-#if @SMALL_WCHAR_T@ /* 32-bit AIX, Cygwin, native Windows */
-# define _GL_SMALL_WCHAR_T 1
-#endif
-
-/* Define if 'wchar_t', like 'char32_t',
- - is a 32-bit type, and
- - represents Unicode code points.
- For this test, we can use __STDC_ISO_10646__ (defined by glibc, musl libc,
- Cygwin) but need to consider _GL_SMALL_WCHAR_T, so as to exclude Cygwin.
- We cannot use __STDC_UTF_16__ or __STDC_UTF_32__
- - because these macros provide info about char16_t and char32_t (not
- wchar_t!), and
- - because GCC >= 4.9 defines these macros on all platforms, even on
- FreeBSD and Solaris.
- We should better not use __STD_UTF_16__, __STD_UTF_32__ either, because
- these macros are misspellings, only defined by Android's <uchar.h>. */
-#if defined __STDC_ISO_10646__ && !_GL_SMALL_WCHAR_T
-/* glibc, musl libc */
-# define _GL_WCHAR_T_IS_UCS4 1
-#endif
-#if _GL_WCHAR_T_IS_UCS4
-static_assert (sizeof (char32_t) == sizeof (wchar_t));
-#endif
-
-
-/* Convert a single-byte character to a 32-bit wide character. */
-#if @GNULIB_BTOC32@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_BTOC32
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ATTRIBUTE_PURE wint_t
-btoc32 (int c)
-{
- return
-# if @GNULIB_BTOWC@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- btowc (c);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (btoc32, wint_t, (int c) _GL_ATTRIBUTE_PURE);
-# endif
-_GL_CXXALIAS_SYS (btoc32, wint_t, (int c));
-_GL_CXXALIASWARN (btoc32);
-#endif
-
-
-/* Test a specific property of a 32-bit wide character. */
-#if @GNULIB_C32ISALNUM@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISALNUM
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isalnum (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswalnum (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isalnum, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isalnum, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isalnum);
-#endif
-#if @GNULIB_C32ISALPHA@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISALPHA
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isalpha (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswalpha (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isalpha, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isalpha, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isalpha);
-#endif
-#if @GNULIB_C32ISBLANK@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISBLANK
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isblank (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswblank (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isblank, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isblank, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isblank);
-#endif
-#if @GNULIB_C32ISCNTRL@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISCNTRL
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32iscntrl (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswcntrl (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32iscntrl, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32iscntrl, int, (wint_t wc));
-_GL_CXXALIASWARN (c32iscntrl);
-#endif
-#if @GNULIB_C32ISDIGIT@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISDIGIT
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isdigit (wint_t wc)
-{
- return
-# if @GNULIB_ISWDIGIT@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswdigit (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isdigit, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isdigit, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isdigit);
-#endif
-#if @GNULIB_C32ISGRAPH@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISGRAPH
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isgraph (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswgraph (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isgraph, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isgraph, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isgraph);
-#endif
-#if @GNULIB_C32ISLOWER@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISLOWER
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32islower (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswlower (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32islower, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32islower, int, (wint_t wc));
-_GL_CXXALIASWARN (c32islower);
-#endif
-#if @GNULIB_C32ISPRINT@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISPRINT
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isprint (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswprint (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isprint, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isprint, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isprint);
-#endif
-#if @GNULIB_C32ISPUNCT@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISPUNCT
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32ispunct (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswpunct (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32ispunct, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32ispunct, int, (wint_t wc));
-_GL_CXXALIASWARN (c32ispunct);
-#endif
-#if @GNULIB_C32ISSPACE@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISSPACE
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isspace (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswspace (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isspace, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isspace, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isspace);
-#endif
-#if @GNULIB_C32ISUPPER@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISUPPER
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isupper (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswupper (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isupper, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isupper, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isupper);
-#endif
-#if @GNULIB_C32ISXDIGIT@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32ISXDIGIT
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32isxdigit (wint_t wc)
-{
- return
-# if @GNULIB_ISWXDIGIT@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswxdigit (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32isxdigit, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32isxdigit, int, (wint_t wc));
-_GL_CXXALIASWARN (c32isxdigit);
-#endif
-
-
-/* Case mapping of a 32-bit wide character. */
-#if @GNULIB_C32TOLOWER@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32TOLOWER
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE wint_t
-c32tolower (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- towlower (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32tolower, wint_t, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32tolower, wint_t, (wint_t wc));
-_GL_CXXALIASWARN (c32tolower);
-#endif
-#if @GNULIB_C32TOUPPER@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32TOUPPER
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE wint_t
-c32toupper (wint_t wc)
-{
- return
-# if defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- towupper (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32toupper, wint_t, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32toupper, wint_t, (wint_t wc));
-_GL_CXXALIASWARN (c32toupper);
-#endif
-
-
-/* Number of screen columns needed for a 32-bit wide character. */
-#if @GNULIB_C32WIDTH@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32WIDTH
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32width (char32_t wc)
-{
- return
-# if @GNULIB_WCWIDTH@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- wcwidth (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32width, int, (char32_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32width, int, (char32_t wc));
-_GL_CXXALIASWARN (c32width);
-#endif
-
-
-/* Converts a 32-bit wide character to a multibyte character. */
-#if @GNULIB_C32RTOMB@
-# if @REPLACE_C32RTOMB@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef c32rtomb
-# define c32rtomb rpl_c32rtomb
-# endif
-_GL_FUNCDECL_RPL (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps));
-_GL_CXXALIAS_RPL (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps));
-# else
-# if !@HAVE_C32RTOMB@
-_GL_FUNCDECL_SYS (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps));
-# endif
-_GL_CXXALIAS_SYS (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps));
-# endif
-# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2
-_GL_CXXALIASWARN (c32rtomb);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef c32rtomb
-# if HAVE_RAW_DECL_C32RTOMB
-_GL_WARN_ON_USE (c32rtomb, "c32rtomb is not portable - "
- "use gnulib module c32rtomb for portability");
-# endif
-#endif
-
-
-/* Convert a 32-bit wide string to a string. */
-#if @GNULIB_C32SNRTOMBS@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32SNRTOMBS
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((2)) size_t
-c32snrtombs (char *dest, const char32_t **srcp, size_t srclen, size_t len,
- mbstate_t *ps)
-{
- return
-# if @GNULIB_WCSNRTOMBS@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- wcsnrtombs (dest, (const wchar_t **) srcp, srclen, len, ps);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32snrtombs, size_t,
- (char *dest, const char32_t **srcp, size_t srclen, size_t
len,
- mbstate_t *ps)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (c32snrtombs, size_t,
- (char *dest, const char32_t **srcp, size_t srclen, size_t
len,
- mbstate_t *ps));
-_GL_CXXALIASWARN (c32snrtombs);
-#endif
-
-
-/* Convert a 32-bit wide string to a string. */
-#if @GNULIB_C32SRTOMBS@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32SRTOMBS
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((2)) size_t
-c32srtombs (char *dest, const char32_t **srcp, size_t len, mbstate_t *ps)
-{
- return
-# if @GNULIB_WCSRTOMBS@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- wcsrtombs (dest, (const wchar_t **) srcp, len, ps);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32srtombs, size_t,
- (char *dest, const char32_t **srcp, size_t len, mbstate_t
*ps)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (c32srtombs, size_t,
- (char *dest, const char32_t **srcp, size_t len,
- mbstate_t *ps));
-_GL_CXXALIASWARN (c32srtombs);
-#endif
-
-
-/* Convert a 32-bit wide string to a string. */
-#if @GNULIB_C32STOMBS@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32STOMBS
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((2)) size_t
-c32stombs (char *dest, const char32_t *src, size_t len)
-{
- mbstate_t state;
-
- mbszero (&state);
- return c32srtombs (dest, &src, len, &state);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32stombs, size_t,
- (char *dest, const char32_t *src, size_t len)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (c32stombs, size_t,
- (char *dest, const char32_t *src, size_t len));
-_GL_CXXALIASWARN (c32stombs);
-#endif
-
-
-/* Number of screen columns needed for a size-bounded 32-bit wide string. */
-#if @GNULIB_C32SWIDTH@
-# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined
IN_C32SWIDTH
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((1)) int
-c32swidth (const char32_t *s, size_t n)
-{
- return
-# if @GNULIB_WCSWIDTH@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- wcswidth ((const wchar_t *) s, n);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32swidth, int, (const char32_t *s, size_t n)
- _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (c32swidth, int, (const char32_t *s, size_t n));
-_GL_CXXALIASWARN (c32swidth);
-#endif
-
-
-/* Converts a 32-bit wide character to unibyte character.
- Returns the single-byte representation of WC if it exists,
- or EOF otherwise. */
-#if @GNULIB_C32TOB@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32TOB
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32tob (wint_t wc)
-{
- return
-# if @GNULIB_WCTOB@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- wctob (wc);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32tob, int, (wint_t wc));
-# endif
-_GL_CXXALIAS_SYS (c32tob, int, (wint_t wc));
-_GL_CXXALIASWARN (c32tob);
-#endif
-
-
-/* Converts a multibyte character to a 32-bit wide character. */
-#if @GNULIB_MBRTOC32@
-# if @REPLACE_MBRTOC32@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef mbrtoc32
-# define mbrtoc32 rpl_mbrtoc32
-# endif
-_GL_FUNCDECL_RPL (mbrtoc32, size_t,
- (char32_t *pc, const char *s, size_t n, mbstate_t *ps));
-_GL_CXXALIAS_RPL (mbrtoc32, size_t,
- (char32_t *pc, const char *s, size_t n, mbstate_t *ps));
-# else
-# if !@HAVE_MBRTOC32@
-_GL_FUNCDECL_SYS (mbrtoc32, size_t,
- (char32_t *pc, const char *s, size_t n, mbstate_t *ps));
-# endif
-_GL_CXXALIAS_SYS (mbrtoc32, size_t,
- (char32_t *pc, const char *s, size_t n, mbstate_t *ps));
-# endif
-# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2
-_GL_CXXALIASWARN (mbrtoc32);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef mbrtoc32
-# if HAVE_RAW_DECL_MBRTOC32
-_GL_WARN_ON_USE (mbrtoc32, "mbrtoc32 is not portable - "
- "use gnulib module mbrtoc32 for portability");
-# endif
-#endif
-
-
-/* Converts a multibyte character and returns the next 16-bit wide
- character. */
-#if @GNULIB_MBRTOC16@
-# if @REPLACE_MBRTOC16@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef mbrtoc16
-# define mbrtoc16 rpl_mbrtoc16
-# endif
-_GL_FUNCDECL_RPL (mbrtoc16, size_t,
- (char16_t *pc, const char *s, size_t n, mbstate_t *ps));
-_GL_CXXALIAS_RPL (mbrtoc16, size_t,
- (char16_t *pc, const char *s, size_t n, mbstate_t *ps));
-# else
-# if !@HAVE_MBRTOC32@
-_GL_FUNCDECL_SYS (mbrtoc16, size_t,
- (char16_t *pc, const char *s, size_t n, mbstate_t *ps));
-# endif
-_GL_CXXALIAS_SYS (mbrtoc16, size_t,
- (char16_t *pc, const char *s, size_t n, mbstate_t *ps));
-# endif
-# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2
-_GL_CXXALIASWARN (mbrtoc16);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef mbrtoc16
-# if HAVE_RAW_DECL_MBRTOC16
-_GL_WARN_ON_USE (mbrtoc16, "mbrtoc16 is not portable - "
- "use gnulib module mbrtoc16 for portability");
-# endif
-#endif
-
-
-/* Convert a string to a 32-bit wide string. */
-#if @GNULIB_MBSNRTOC32S@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_MBSNRTOC32S
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((2)) size_t
-mbsnrtoc32s (char32_t *dest, const char **srcp, size_t srclen, size_t len,
- mbstate_t *ps)
-{
- return
-# if @GNULIB_MBSNRTOWCS@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- mbsnrtowcs ((wchar_t *) dest, srcp, srclen, len, ps);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (mbsnrtoc32s, size_t,
- (char32_t *dest, const char **srcp, size_t srclen, size_t
len,
- mbstate_t *ps)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (mbsnrtoc32s, size_t,
- (char32_t *dest, const char **srcp, size_t srclen, size_t
len,
- mbstate_t *ps));
-_GL_CXXALIASWARN (mbsnrtoc32s);
-#endif
-
-
-/* Convert a string to a 32-bit wide string. */
-#if @GNULIB_MBSRTOC32S@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_MBSRTOC32S
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((2)) size_t
-mbsrtoc32s (char32_t *dest, const char **srcp, size_t len, mbstate_t *ps)
-{
- return
-# if @GNULIB_MBSRTOWCS@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- mbsrtowcs ((wchar_t *) dest, srcp, len, ps);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (mbsrtoc32s, size_t,
- (char32_t *dest, const char **srcp, size_t len, mbstate_t
*ps)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (mbsrtoc32s, size_t,
- (char32_t *dest, const char **srcp, size_t len,
- mbstate_t *ps));
-_GL_CXXALIASWARN (mbsrtoc32s);
-#endif
-
-
-/* Convert a string to a 32-bit wide string. */
-#if @GNULIB_MBSTOC32S@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_MBSTOC32S
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((2)) size_t
-mbstoc32s (char32_t *dest, const char *src, size_t len)
-{
- mbstate_t state;
-
- mbszero (&state);
- return mbsrtoc32s (dest, &src, len, &state);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (mbstoc32s, size_t,
- (char32_t *dest, const char *src, size_t len)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (mbstoc32s, size_t,
- (char32_t *dest, const char *src, size_t len));
-_GL_CXXALIASWARN (mbstoc32s);
-#endif
-
-
-#if @GNULIB_C32_GET_TYPE_TEST@ || @GNULIB_C32_APPLY_TYPE_TEST@
-/* A scalar type. Instances of this type, other than (c32_type_test_t) 0,
- represent a character property, sometimes also viewed as a "character
class".
- It can be applied to 32-bit wide characters. It is the counterpart of
- type 'wctype_t' for wide characters.
- To test whether a given character has a certain property, use the function
- 'c32_apply_type_test'. */
-# if _GL_WCHAR_T_IS_UCS4
-typedef wctype_t c32_type_test_t;
-# else
-typedef /*bool*/int (*c32_type_test_t) (wint_t wc);
-# endif
-#endif
-
-/* Return a character property with the given name, or (c32_type_test_t) 0
- if the designated property does not exist.
- This function is the counterpart of function 'wctype' for wide characters.
- */
-#if @GNULIB_C32_GET_TYPE_TEST@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32_GET_TYPE_TEST
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((1)) c32_type_test_t
-c32_get_type_test (const char *name)
-{
- return
-# if @GNULIB_WCTYPE@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- wctype (name);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32_get_type_test, c32_type_test_t, (const char *name)
- _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (c32_get_type_test, c32_type_test_t, (const char *name));
-_GL_CXXALIASWARN (c32_get_type_test);
-#endif
-
-/* Test whether a given 32-bit wide character has the specified character
- property.
- Return non-zero if true, zero if false or if the argument is WEOF.
- This function is the counterpart of function 'iswctype' for wide characters.
- */
-#if @GNULIB_C32_APPLY_TYPE_TEST@
-# if _GL_WCHAR_T_IS_UCS4
-# if !defined IN_C32_APPLY_TYPE_TEST
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE int
-c32_apply_type_test (wint_t wc, c32_type_test_t property)
-{
- return
-# if @GNULIB_ISWCTYPE@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- iswctype (wc, property);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32_apply_type_test, int,
- (wint_t wc, c32_type_test_t property));
-# endif
-# else
-_GL_FUNCDECL_SYS (c32_apply_type_test, int,
- (wint_t wc, c32_type_test_t property)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (c32_apply_type_test, int,
- (wint_t wc, c32_type_test_t property));
-_GL_CXXALIASWARN (c32_apply_type_test);
-#endif
-
-
-#if @GNULIB_C32_GET_MAPPING@ || @GNULIB_C32_APPLY_MAPPING@
-/* A scalar type. Instances of this type, other than (c32_mapping_t) 0,
- represent a character mapping. It can be applied to 32-bit wide characters.
- It is the counterpart of type 'wctrans_t' for wide characters.
- To apply a certain mapping to a given character, use the function
- 'c32_apply_mapping'. */
-# if _GL_WCHAR_T_IS_UCS4
-typedef wctrans_t c32_mapping_t;
-# else
-typedef wint_t (*c32_mapping_t) (wint_t wc);
-# endif
-#endif
-
-/* Return a character mapping with the given name, or (c32_mapping_t) 0
- if the designated mapping does not exist.
- This function is the counterpart of function 'wctrans' for wide characters.
- */
-#if @GNULIB_C32_GET_MAPPING@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32_GET_MAPPING
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((1)) c32_mapping_t
-c32_get_mapping (const char *name)
-{
- return
-# if @GNULIB_WCTRANS@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- wctrans (name);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32_get_mapping, c32_mapping_t, (const char *name)
- _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (c32_get_mapping, c32_mapping_t, (const char *name));
-_GL_CXXALIASWARN (c32_get_mapping);
-#endif
-
-/* Apply the specified character mapping to a given 32-bit wide character.
- Return the result of this mapping. Return the WC argument unchanged if it
is
- WEOF.
- This function is the counterpart of function 'towctrans' for wide
characters.
- */
-#if @GNULIB_C32_APPLY_MAPPING@
-# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32_APPLY_MAPPING
-_GL_BEGIN_C_LINKAGE
-_GL_INLINE _GL_ARG_NONNULL ((2)) wint_t
-c32_apply_mapping (wint_t wc, c32_mapping_t mapping)
-{
- return
-# if @GNULIB_TOWCTRANS@ && defined __cplusplus && defined GNULIB_NAMESPACE
- GNULIB_NAMESPACE::
-# endif
- towctrans (wc, mapping);
-}
-_GL_END_C_LINKAGE
-# else
-_GL_FUNCDECL_SYS (c32_apply_mapping, wint_t,
- (wint_t wc, c32_mapping_t mapping)
- _GL_ARG_NONNULL ((2)));
-# endif
-_GL_CXXALIAS_SYS (c32_apply_mapping, wint_t,
- (wint_t wc, c32_mapping_t mapping));
-_GL_CXXALIASWARN (c32_apply_mapping);
-#endif
-
-
-_GL_INLINE_HEADER_END
-
-#endif /* _@GUARD_PREFIX@_UCHAR_H */
-#endif /* _@GUARD_PREFIX@_UCHAR_H */
diff --git a/tp/Texinfo/XS/gnulib/lib/wctype-h.c
b/tp/Texinfo/XS/gnulib/lib/wctype-h.c
deleted file mode 100644
index 7d3e14a6b5..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/wctype-h.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Inline functions for <wctype.h>.
-
- Copyright (C) 2012-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Normally this would be wctype.c, but that name's already taken. */
-
-#include <config.h>
-
-#define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE
-#include "wctype.h"
diff --git a/tp/Texinfo/XS/gnulib/lib/wctype.in.h
b/tp/Texinfo/XS/gnulib/lib/wctype.in.h
deleted file mode 100644
index 6f1e7ef149..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/wctype.in.h
+++ /dev/null
@@ -1,797 +0,0 @@
-/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
-
- Copyright (C) 2006-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Bruno Haible and Paul Eggert. */
-
-/*
- * ISO C 99 <wctype.h> for platforms that lack it.
- * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/wctype.h.html>
- *
- * iswctype, towctrans, towlower, towupper, wctrans, wctype,
- * wctrans_t, and wctype_t are not yet implemented.
- */
-
-#if __GNUC__ >= 3
-@PRAGMA_SYSTEM_HEADER@
-#endif
-@PRAGMA_COLUMNS@
-
-#if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__)
-
-/* Special invocation convention:
- - With MinGW 3.22, when <ctype.h> includes <wctype.h>, only some part of
- <wctype.h> is being processed, which doesn't include the idempotency
- guard. */
-
-#@INCLUDE_NEXT@ @NEXT_WCTYPE_H@
-
-#else
-/* Normal invocation convention. */
-
-#ifndef _@GUARD_PREFIX@_WCTYPE_H
-
-/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK,
- HAVE_RAW_DECL_*. */
-#if !_GL_CONFIG_H_INCLUDED
- #error "Please include config.h first."
-#endif
-
-#if @HAVE_WINT_T@
-/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
-# include <wchar.h>
-#endif
-
-/* Native Windows (mingw, MSVC) have declarations of towupper, towlower, and
- isw* functions in <ctype.h>, <wchar.h> as well as in <wctype.h>. Include
- <ctype.h>, <wchar.h> in advance to avoid rpl_ prefix being added to the
- declarations. */
-#if defined _WIN32 && ! defined __CYGWIN__
-# include <ctype.h>
-# include <wchar.h>
-#endif
-
-/* Include the original <wctype.h> if it exists.
- BeOS 5 has the functions but no <wctype.h>. */
-/* The include_next requires a split double-inclusion guard. */
-#if @HAVE_WCTYPE_H@
-# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
-#endif
-
-#ifndef _@GUARD_PREFIX@_WCTYPE_H
-#define _@GUARD_PREFIX@_WCTYPE_H
-
-_GL_INLINE_HEADER_BEGIN
-#ifndef _GL_WCTYPE_INLINE
-# define _GL_WCTYPE_INLINE _GL_INLINE
-#endif
-
-/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
-
-/* The definition of _GL_ARG_NONNULL is copied here. */
-
-/* The definition of _GL_WARN_ON_USE is copied here. */
-
-/* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
- #defines a number of identifiers in the application namespace. Revert
- these #defines. */
-#ifdef __sun
-# undef multibyte
-# undef eucw1
-# undef eucw2
-# undef eucw3
-# undef scrw1
-# undef scrw2
-# undef scrw3
-#endif
-
-/* Define wint_t and WEOF. (Also done in wchar.in.h.) */
-#if !@HAVE_WINT_T@ && !defined wint_t
-# define wint_t int
-# ifndef WEOF
-# define WEOF -1
-# endif
-#else
-/* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or
- <stddef.h>. This is too small: ISO C 99 section 7.24.1.(2) says that
- wint_t must be "unchanged by default argument promotions". Override it. */
-# if @GNULIBHEADERS_OVERRIDE_WINT_T@
-# if !GNULIB_defined_wint_t
-# if @HAVE_CRTDEFS_H@
-# include <crtdefs.h>
-# else
-# include <stddef.h>
-# endif
-typedef unsigned int rpl_wint_t;
-# undef wint_t
-# define wint_t rpl_wint_t
-# define GNULIB_defined_wint_t 1
-# endif
-# endif
-# ifndef WEOF
-# define WEOF ((wint_t) -1)
-# endif
-#endif
-
-
-#if !GNULIB_defined_wctype_functions
-
-/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
- Linux libc5 has <wctype.h> and the functions but they are broken.
- mingw and MSVC have <wctype.h> and the functions but they take a wchar_t
- as argument, not an rpl_wint_t. Additionally, the mingw iswprint function
- and the Android iswpunct function are broken.
- Assume all 11 functions (all isw* except iswblank) are implemented the
- same way, or not at all. */
-# if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
-
-# if @GNULIBHEADERS_OVERRIDE_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */
-
-_GL_WCTYPE_INLINE int
-rpl_iswalnum (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswalnum ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswalpha (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswalpha ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswblank (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswblank ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswcntrl (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswcntrl ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswdigit (wint_t wc)
-{
- return ((wchar_t) wc == wc ? wc >= '0' && wc <= '9' : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswgraph (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswgraph ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswlower (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswlower ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswprint (wint_t wc)
-{
-# ifdef __MINGW32__
- return ((wchar_t) wc == wc ? wc == ' ' || iswgraph ((wchar_t) wc) : 0);
-# else
- return ((wchar_t) wc == wc ? iswprint ((wchar_t) wc) : 0);
-# endif
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswpunct (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswpunct ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswspace (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswspace ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswupper (wint_t wc)
-{
- return ((wchar_t) wc == wc ? iswupper ((wchar_t) wc) : 0);
-}
-
-_GL_WCTYPE_INLINE int
-rpl_iswxdigit (wint_t wc)
-{
- return ((wchar_t) wc == wc
- ? (wc >= '0' && wc <= '9')
- || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')
- : 0);
-}
-
-_GL_WCTYPE_INLINE wint_t
-rpl_towlower (wint_t wc)
-{
- return ((wchar_t) wc == wc ? (wchar_t) towlower ((wchar_t) wc) : wc);
-}
-
-_GL_WCTYPE_INLINE wint_t
-rpl_towupper (wint_t wc)
-{
- return ((wchar_t) wc == wc ? (wchar_t) towupper ((wchar_t) wc) : wc);
-}
-
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef iswalnum
-# undef iswalpha
-# undef iswblank
-# undef iswcntrl
-# undef iswdigit
-# undef iswgraph
-# undef iswlower
-# undef iswprint
-# undef iswpunct
-# undef iswspace
-# undef iswupper
-# undef iswxdigit
-# undef towlower
-# undef towupper
-# define iswalnum rpl_iswalnum
-# define iswalpha rpl_iswalpha
-# define iswblank rpl_iswblank
-# define iswcntrl rpl_iswcntrl
-# define iswdigit rpl_iswdigit
-# define iswgraph rpl_iswgraph
-# define iswlower rpl_iswlower
-# define iswprint rpl_iswprint
-# define iswpunct rpl_iswpunct
-# define iswspace rpl_iswspace
-# define iswupper rpl_iswupper
-# define iswxdigit rpl_iswxdigit
-# define towlower rpl_towlower
-# define towupper rpl_towupper
-# endif
-
-# else
-
-/* IRIX 5.3 has macros but no functions, its isw* macros refer to an
- undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
- refer to system functions like _iswctype that are not in the
- standard C library. Rather than try to get ancient buggy
- implementations like this to work, just disable them. */
-# undef iswalnum
-# undef iswalpha
-# undef iswblank
-# undef iswcntrl
-# undef iswdigit
-# undef iswgraph
-# undef iswlower
-# undef iswprint
-# undef iswpunct
-# undef iswspace
-# undef iswupper
-# undef iswxdigit
-# undef towlower
-# undef towupper
-
-/* Linux libc5 has <wctype.h> and the functions but they are broken. */
-# if @REPLACE_ISWCNTRL@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# define iswalnum rpl_iswalnum
-# define iswalpha rpl_iswalpha
-# define iswblank rpl_iswblank
-# define iswcntrl rpl_iswcntrl
-# define iswdigit rpl_iswdigit
-# define iswgraph rpl_iswgraph
-# define iswlower rpl_iswlower
-# define iswprint rpl_iswprint
-# define iswpunct rpl_iswpunct
-# 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
-# endif
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswalnum
-# else
-iswalnum
-# endif
- (wint_t wc)
-{
- return ((wc >= '0' && wc <= '9')
- || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswalpha
-# else
-iswalpha
-# endif
- (wint_t wc)
-{
- return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswblank
-# else
-iswblank
-# endif
- (wint_t wc)
-{
- return wc == ' ' || wc == '\t';
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswcntrl
-# else
-iswcntrl
-# endif
- (wint_t wc)
-{
- return (wc & ~0x1f) == 0 || wc == 0x7f;
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWDIGIT@
-rpl_iswdigit
-# else
-iswdigit
-# endif
- (wint_t wc)
-{
- return wc >= '0' && wc <= '9';
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswgraph
-# else
-iswgraph
-# endif
- (wint_t wc)
-{
- return wc >= '!' && wc <= '~';
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswlower
-# else
-iswlower
-# endif
- (wint_t wc)
-{
- return wc >= 'a' && wc <= 'z';
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswprint
-# else
-iswprint
-# endif
- (wint_t wc)
-{
- return wc >= ' ' && wc <= '~';
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswpunct
-# else
-iswpunct
-# endif
- (wint_t wc)
-{
- return (wc >= '!' && wc <= '~'
- && !((wc >= '0' && wc <= '9')
- || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswspace
-# else
-iswspace
-# endif
- (wint_t wc)
-{
- return (wc == ' ' || wc == '\t'
- || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWCNTRL@
-rpl_iswupper
-# else
-iswupper
-# endif
- (wint_t wc)
-{
- return wc >= 'A' && wc <= 'Z';
-}
-
-_GL_WCTYPE_INLINE int
-# if @REPLACE_ISWXDIGIT@
-rpl_iswxdigit
-# else
-iswxdigit
-# endif
- (wint_t wc)
-{
- return ((wc >= '0' && wc <= '9')
- || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
-}
-
-_GL_WCTYPE_INLINE wint_t
-# if @REPLACE_TOWLOWER@
-rpl_towlower
-# else
-towlower
-# endif
- (wint_t wc)
-{
- return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
-}
-
-_GL_WCTYPE_INLINE wint_t
-# if @REPLACE_TOWLOWER@
-rpl_towupper
-# else
-towupper
-# endif
- (wint_t wc)
-{
- return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc);
-}
-
-# endif
-
-# else
-/* Only some of the functions are missing or broken. */
-
-# if @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@)
-/* Only the iswblank function is missing. */
-# if @REPLACE_ISWBLANK@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# define iswblank rpl_iswblank
-# endif
-_GL_FUNCDECL_RPL (iswblank, int, (wint_t wc));
-# else
-_GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
-# endif
-# endif
-
-# if @GNULIB_ISWDIGIT@
-# if @REPLACE_ISWDIGIT@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef iswdigit
-# define iswdigit rpl_iswdigit
-# endif
-_GL_FUNCDECL_RPL (iswdigit, int, (wint_t wc));
-# endif
-# endif
-
-# if @GNULIB_ISWPUNCT@
-# if @REPLACE_ISWPUNCT@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef iswpunct
-# define iswpunct rpl_iswpunct
-# endif
-_GL_FUNCDECL_RPL (iswpunct, int, (wint_t wc));
-# endif
-# endif
-
-# if @GNULIB_ISWXDIGIT@
-# if @REPLACE_ISWXDIGIT@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef iswxdigit
-# define iswxdigit rpl_iswxdigit
-# endif
-_GL_FUNCDECL_RPL (iswxdigit, int, (wint_t wc));
-# endif
-# endif
-
-# endif
-
-# if defined __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@
-
-/* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t.
- The functions towlower and towupper are implemented in the MSVCRT library
- to take a wchar_t argument and return a wchar_t result. mingw declares
- these functions to take a wint_t argument and return a wint_t result.
- This means that:
- 1. When the user passes an argument outside the range 0x0000..0xFFFF, the
- function will look only at the lower 16 bits. This is allowed according
- to POSIX.
- 2. The return value is returned in the lower 16 bits of the result register.
- The upper 16 bits are random: whatever happened to be in that part of the
- result register. We need to fix this by adding a zero-extend from
- wchar_t to wint_t after the call. */
-
-_GL_WCTYPE_INLINE wint_t
-rpl_towlower (wint_t wc)
-{
- return (wint_t) (wchar_t) towlower (wc);
-}
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# define towlower rpl_towlower
-# endif
-
-_GL_WCTYPE_INLINE wint_t
-rpl_towupper (wint_t wc)
-{
- return (wint_t) (wchar_t) towupper (wc);
-}
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# define towupper rpl_towupper
-# endif
-
-# endif /* __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ */
-
-# define GNULIB_defined_wctype_functions 1
-#endif
-
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc));
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc));
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc));
-#endif
-#if @GNULIB_ISWDIGIT@
-# if @REPLACE_ISWDIGIT@
-_GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc));
-# else
-_GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc));
-# endif
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc));
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswlower, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswlower, int, (wint_t wc));
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswprint, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswprint, int, (wint_t wc));
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc));
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswspace, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswspace, int, (wint_t wc));
-#endif
-#if @REPLACE_ISWCNTRL@
-_GL_CXXALIAS_RPL (iswupper, int, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (iswupper, int, (wint_t wc));
-#endif
-#if @GNULIB_ISWXDIGIT@
-# if @REPLACE_ISWXDIGIT@
-_GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc));
-# else
-_GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc));
-# endif
-#endif
-#if __GLIBC__ >= 2
-_GL_CXXALIASWARN (iswalnum);
-_GL_CXXALIASWARN (iswalpha);
-_GL_CXXALIASWARN (iswcntrl);
-_GL_CXXALIASWARN (iswdigit);
-_GL_CXXALIASWARN (iswgraph);
-_GL_CXXALIASWARN (iswlower);
-_GL_CXXALIASWARN (iswprint);
-_GL_CXXALIASWARN (iswpunct);
-_GL_CXXALIASWARN (iswspace);
-_GL_CXXALIASWARN (iswupper);
-_GL_CXXALIASWARN (iswxdigit);
-#endif
-
-#if @GNULIB_ISWBLANK@
-# if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@
-_GL_CXXALIAS_RPL (iswblank, int, (wint_t wc));
-# else
-_GL_CXXALIAS_SYS (iswblank, int, (wint_t wc));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (iswblank);
-# endif
-#endif
-
-#if !@HAVE_WCTYPE_T@
-# if !GNULIB_defined_wctype_t
-typedef void * wctype_t;
-# define GNULIB_defined_wctype_t 1
-# endif
-#elif @REPLACE_WCTYPE@
-# if !GNULIB_defined_wctype_t
-typedef void *rpl_wctype_t;
-# undef wctype_t
-# define wctype_t rpl_wctype_t
-# define GNULIB_defined_wctype_t 1
-# endif
-#endif
-
-/* Get a descriptor for a wide character property. */
-#if @GNULIB_WCTYPE@
-# if @REPLACE_WCTYPE@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef wctype
-# define wctype rpl_wctype
-# endif
-_GL_FUNCDECL_RPL (wctype, wctype_t, (const char *name)
- _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (wctype, wctype_t, (const char *name));
-# else
-# if !@HAVE_WCTYPE_T@
-_GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name)
- _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (wctype);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef wctype
-# if HAVE_RAW_DECL_WCTYPE
-_GL_WARN_ON_USE (wctype, "wctype is unportable - "
- "use gnulib module wctype for portability");
-# endif
-#endif
-
-/* Test whether a wide character has a given property.
- The argument WC must be either a wchar_t value or WEOF.
- The argument DESC must have been returned by the wctype() function. */
-#if @GNULIB_ISWCTYPE@
-# if @GNULIBHEADERS_OVERRIDE_WINT_T@ || @REPLACE_WCTYPE@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef iswctype
-# define iswctype rpl_iswctype
-# endif
-_GL_FUNCDECL_RPL (iswctype, int, (wint_t wc, wctype_t desc));
-_GL_CXXALIAS_RPL (iswctype, int, (wint_t wc, wctype_t desc));
-# else
-# if !@HAVE_WCTYPE_T@
-_GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc));
-# endif
-_GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (iswctype);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef iswctype
-# if HAVE_RAW_DECL_ISWCTYPE
-_GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
- "use gnulib module iswctype for portability");
-# endif
-#endif
-
-#if @REPLACE_TOWLOWER@ || defined __MINGW32__
-_GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
-_GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
-#else
-_GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc));
-_GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc));
-#endif
-#if __GLIBC__ >= 2
-_GL_CXXALIASWARN (towlower);
-_GL_CXXALIASWARN (towupper);
-#endif
-
-#if !@HAVE_WCTRANS_T@
-# if !GNULIB_defined_wctrans_t
-typedef void * wctrans_t;
-# define GNULIB_defined_wctrans_t 1
-# endif
-#elif @REPLACE_WCTRANS@
-# if !GNULIB_defined_wctrans_t
-typedef void *rpl_wctrans_t;
-# undef wctrans_t
-# define wctrans_t rpl_wctrans_t
-# define GNULIB_defined_wctrans_t 1
-# endif
-#endif
-
-/* Get a descriptor for a wide character case conversion. */
-#if @GNULIB_WCTRANS@
-# if @REPLACE_WCTRANS@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef wctrans
-# define wctrans rpl_wctrans
-# endif
-_GL_FUNCDECL_RPL (wctrans, wctrans_t, (const char *name)
- _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (wctrans, wctrans_t, (const char *name));
-# else
-# if !@HAVE_WCTRANS_T@
-_GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name)
- _GL_ARG_NONNULL ((1)));
-# endif
-_GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (wctrans);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef wctrans
-# if HAVE_RAW_DECL_WCTRANS
-_GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
- "use gnulib module wctrans for portability");
-# endif
-#endif
-
-/* Perform a given case conversion on a wide character.
- The argument WC must be either a wchar_t value or WEOF.
- The argument DESC must have been returned by the wctrans() function. */
-#if @GNULIB_TOWCTRANS@
-# if @REPLACE_WCTRANS@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef towctrans
-# define towctrans rpl_towctrans
-# endif
-_GL_FUNCDECL_RPL (towctrans, wint_t, (wint_t wc, wctrans_t desc));
-_GL_CXXALIAS_RPL (towctrans, wint_t, (wint_t wc, wctrans_t desc));
-# else
-# if !@HAVE_WCTRANS_T@
-_GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
-# endif
-_GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (towctrans);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef towctrans
-# if HAVE_RAW_DECL_TOWCTRANS
-_GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
- "use gnulib module towctrans for portability");
-# endif
-#endif
-
-_GL_INLINE_HEADER_END
-
-#endif /* _@GUARD_PREFIX@_WCTYPE_H */
-#endif /* _@GUARD_PREFIX@_WCTYPE_H */
-#endif
diff --git a/tp/Texinfo/XS/gnulib/lib/wcwidth.c
b/tp/Texinfo/XS/gnulib/lib/wcwidth.c
deleted file mode 100644
index 1d03665496..0000000000
--- a/tp/Texinfo/XS/gnulib/lib/wcwidth.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Determine the number of screen columns needed for a character.
- Copyright (C) 2006-2007, 2010-2023 Free Software Foundation, Inc.
-
- This file is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This file 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 Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Specification. */
-#include <wchar.h>
-
-/* Get iswprint. */
-#include <wctype.h>
-
-#include "localcharset.h"
-#include "streq.h"
-#include "uniwidth.h"
-
-/* Returns 1 if the current locale is an UTF-8 locale, 0 otherwise. */
-static inline int
-is_locale_utf8 (void)
-{
- const char *encoding = locale_charset ();
- return STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0);
-}
-
-#if GNULIB_WCHAR_SINGLE_LOCALE
-/* When we know that the locale does not change, provide a speedup by
- caching the value of is_locale_utf8. */
-static int cached_is_locale_utf8 = -1;
-static inline int
-is_locale_utf8_cached (void)
-{
- if (cached_is_locale_utf8 < 0)
- cached_is_locale_utf8 = is_locale_utf8 ();
- return cached_is_locale_utf8;
-}
-#else
-/* By default, don't make assumptions, hence no caching. */
-# define is_locale_utf8_cached is_locale_utf8
-#endif
-
-int
-wcwidth (wchar_t wc)
-#undef wcwidth
-{
- /* In UTF-8 locales, use a Unicode aware width function. */
- if (is_locale_utf8_cached ())
- {
- /* We assume that in a UTF-8 locale, a wide character is the same as a
- Unicode character. */
- return uc_width (wc, "UTF-8");
- }
- else
- {
- /* Otherwise, fall back to the system's wcwidth function. */
-#if HAVE_WCWIDTH
- return wcwidth (wc);
-#else
- return wc == 0 ? 0 : iswprint (wc) ? 1 : -1;
-#endif
- }
-}
diff --git a/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
b/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
index 322ed7db8b..e33b9b14b5 100644
--- a/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
+++ b/tp/Texinfo/XS/gnulib/m4/gnulib-cache.m4
@@ -37,8 +37,6 @@
# --no-conditional-dependencies \
# --libtool \
# --macro-prefix=gl \
-# c32isupper \
-# c32width \
# getline \
# iconv \
# libunistring \
@@ -54,6 +52,7 @@
# unictype/category-L \
# unictype/category-Mn \
# unictype/category-test \
+# unictype/ctype-upper \
# uninorm/nfc \
# uninorm/nfkd \
# uninorm/u8-normalize \
@@ -66,14 +65,11 @@
# uniwidth/u8-strwidth \
# uniwidth/u8-width \
# unsetenv \
-# vasprintf \
-# wcwidth
+# vasprintf
# Specification in the form of a few gnulib-tool.m4 macro invocations:
gl_LOCAL_DIR([])
gl_MODULES([
- c32isupper
- c32width
getline
iconv
libunistring
@@ -89,6 +85,7 @@ gl_MODULES([
unictype/category-L
unictype/category-Mn
unictype/category-test
+ unictype/ctype-upper
uninorm/nfc
uninorm/nfkd
uninorm/u8-normalize
@@ -102,7 +99,6 @@ gl_MODULES([
uniwidth/u8-width
unsetenv
vasprintf
- wcwidth
])
gl_AVOID([])
gl_SOURCE_BASE([gnulib/lib])
diff --git a/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
b/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
index 19072eef97..ab0b69ddd4 100644
--- a/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
+++ b/tp/Texinfo/XS/gnulib/m4/gnulib-comp.m4
@@ -52,8 +52,6 @@ AC_DEFUN([gl_EARLY],
# Code from module c-ctype:
# Code from module c-strcase:
# Code from module c-strcaseeq:
- # Code from module c32isupper:
- # Code from module c32width:
# Code from module c99:
# Code from module environ:
# Code from module errno:
@@ -77,7 +75,6 @@ AC_DEFUN([gl_EARLY],
# Code from module inttypes-incomplete:
# Code from module libunistring:
# Code from module limits-h:
- # Code from module localcharset:
# Code from module malloca:
# Code from module mbszero:
# Code from module memchr:
@@ -107,7 +104,6 @@ AC_DEFUN([gl_EARLY],
# Code from module strndup:
# Code from module strnlen:
# Code from module sys_types:
- # Code from module uchar:
# Code from module unicase/base:
# Code from module unicase/cased:
# Code from module unicase/empty-prefix-context:
@@ -172,8 +168,6 @@ AC_DEFUN([gl_EARLY],
# Code from module vasnprintf:
# Code from module vasprintf:
# Code from module wchar:
- # Code from module wctype-h:
- # Code from module wcwidth:
# Code from module xalloc-oversized:
# Code from module xsize:
])
@@ -202,18 +196,6 @@ AC_DEFUN([gl_INIT],
gl_ASSERT_H
gl_CONDITIONAL_HEADER([assert.h])
AC_PROG_MKDIR_P
- AC_REQUIRE([gl_UCHAR_H])
- dnl Determine REPLACE_MBSTATE_T, from which GNULIB_defined_mbstate_t is
- dnl determined. It describes how mbrtoc32 is implemented.
- AC_REQUIRE([gl_MBSTATE_T_BROKEN])
- AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
- gl_UCHAR_MODULE_INDICATOR([c32isupper])
- AC_REQUIRE([gl_UCHAR_H])
- dnl Determine REPLACE_MBSTATE_T, from which GNULIB_defined_mbstate_t is
- dnl determined. It describes how mbrtoc32 is implemented.
- AC_REQUIRE([gl_MBSTATE_T_BROKEN])
- AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
- gl_UCHAR_MODULE_INDICATOR([c32width])
gl_ENVIRON
gl_UNISTD_MODULE_INDICATOR([environ])
gl_HEADER_ERRNO_H
@@ -267,10 +249,6 @@ AC_DEFUN([gl_INIT],
gl_LIMITS_H
gl_CONDITIONAL_HEADER([limits.h])
AC_PROG_MKDIR_P
- gl_LOCALCHARSET
- dnl For backward compatibility. Some packages still use this.
- LOCALCHARSET_TESTS_ENVIRONMENT=
- AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
gl_MALLOCA
AC_REQUIRE([AC_TYPE_MBSTATE_T])
gl_MBSTATE_T_BROKEN
@@ -374,9 +352,6 @@ AC_DEFUN([gl_INIT],
gl_SYS_TYPES_H
gl_SYS_TYPES_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
- gl_UCHAR_H
- gl_UCHAR_H_REQUIRE_DEFAULTS
- AC_PROG_MKDIR_P
gl_LIBUNISTRING_LIBHEADER([1.2], [unicase.h])
gl_UNICASE_H
gl_UNICASE_H_REQUIRE_DEFAULTS
@@ -497,16 +472,6 @@ AC_DEFUN([gl_INIT],
gl_WCHAR_H
gl_WCHAR_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
- gl_WCTYPE_H
- gl_WCTYPE_H_REQUIRE_DEFAULTS
- AC_PROG_MKDIR_P
- gl_FUNC_WCWIDTH
- gl_CONDITIONAL([GL_COND_OBJ_WCWIDTH],
- [test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1])
- AM_COND_IF([GL_COND_OBJ_WCWIDTH], [
- gl_PREREQ_WCWIDTH
- ])
- gl_WCHAR_MODULE_INDICATOR([wcwidth])
gl_XSIZE
# End of code from modules
m4_ifval(gl_LIBSOURCES_LIST, [
@@ -693,9 +658,6 @@ AC_DEFUN([gl_FILE_LIST], [
lib/c-strcasecmp.c
lib/c-strcaseeq.h
lib/c-strncasecmp.c
- lib/c32is-impl.h
- lib/c32isupper.c
- lib/c32width.c
lib/errno.in.h
lib/exitfail.c
lib/exitfail.h
@@ -723,7 +685,6 @@ AC_DEFUN([gl_FILE_LIST], [
lib/itold.c
lib/libunistring.valgrind
lib/limits.in.h
- lib/localcharset.c
lib/localcharset.h
lib/malloca.c
lib/malloca.h
@@ -758,7 +719,6 @@ AC_DEFUN([gl_FILE_LIST], [
lib/strndup.c
lib/strnlen.c
lib/sys_types.in.h
- lib/uchar.in.h
lib/unicase.in.h
lib/unicase/cased.c
lib/unicase/cased.h
@@ -860,9 +820,6 @@ AC_DEFUN([gl_FILE_LIST], [
lib/verify.h
lib/warn-on-use.h
lib/wchar.in.h
- lib/wctype-h.c
- lib/wctype.in.h
- lib/wcwidth.c
lib/xalloc-oversized.h
lib/xsize.c
lib/xsize.h
@@ -898,13 +855,11 @@ AC_DEFUN([gl_FILE_LIST], [
m4/libunistring-base.m4
m4/libunistring.m4
m4/limits-h.m4
- m4/localcharset.m4
m4/locale-fr.m4
m4/locale-ja.m4
m4/locale-zh.m4
m4/malloca.m4
m4/math_h.m4
- m4/mbrtoc32.m4
m4/mbrtowc.m4
m4/mbstate_t.m4
m4/memchr.m4
@@ -931,7 +886,6 @@ AC_DEFUN([gl_FILE_LIST], [
m4/strndup.m4
m4/strnlen.m4
m4/sys_types_h.m4
- m4/uchar_h.m4
m4/unicase_h.m4
m4/unictype_h.m4
m4/uninorm_h.m4
@@ -942,8 +896,6 @@ AC_DEFUN([gl_FILE_LIST], [
m4/warn-on-use.m4
m4/wchar_h.m4
m4/wchar_t.m4
- m4/wctype_h.m4
- m4/wcwidth.m4
m4/wint_t.m4
m4/xsize.m4
m4/zzgnulib.m4
diff --git a/tp/Texinfo/XS/gnulib/m4/localcharset.m4
b/tp/Texinfo/XS/gnulib/m4/localcharset.m4
deleted file mode 100644
index 15b6b2a553..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/localcharset.m4
+++ /dev/null
@@ -1,11 +0,0 @@
-# localcharset.m4 serial 8
-dnl Copyright (C) 2002, 2004, 2006, 2009-2023 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_LOCALCHARSET],
-[
- dnl Prerequisites of lib/localcharset.c.
- AC_REQUIRE([AM_LANGINFO_CODESET])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4
b/tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4
deleted file mode 100644
index 361c9f8380..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/mbrtoc32.m4
+++ /dev/null
@@ -1,266 +0,0 @@
-# mbrtoc32.m4 serial 18
-dnl Copyright (C) 2014-2023 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FUNC_MBRTOC32],
-[
- AC_REQUIRE([gl_UCHAR_H_DEFAULTS])
-
- AC_REQUIRE([AC_TYPE_MBSTATE_T])
- dnl Determine REPLACE_MBSTATE_T, from which GNULIB_defined_mbstate_t is
- dnl determined. It describes how our overridden mbrtowc is implemented.
- dnl We then implement mbrtoc32 accordingly.
- AC_REQUIRE([gl_MBSTATE_T_BROKEN])
-
- AC_REQUIRE([gl_TYPE_CHAR32_T])
- AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
-
- AC_REQUIRE([gl_CHECK_FUNC_MBRTOC32])
- if test $gl_cv_func_mbrtoc32 = no; then
- HAVE_MBRTOC32=0
- else
- if test $GNULIBHEADERS_OVERRIDE_CHAR32_T = 1 || test $REPLACE_MBSTATE_T =
1; then
- REPLACE_MBRTOC32=1
- else
- gl_MBRTOC32_EMPTY_INPUT
- gl_MBRTOC32_C_LOCALE
- case "$gl_cv_func_mbrtoc32_empty_input" in
- *yes) ;;
- *) AC_DEFINE([MBRTOC32_EMPTY_INPUT_BUG], [1],
- [Define if the mbrtoc32 function does not return (size_t) -2 for
empty input.])
- REPLACE_MBRTOC32=1
- ;;
- esac
- case "$gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ" in
- *yes) ;;
- *) AC_DEFINE([MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ], [1],
- [Define if the mbrtoc32 function may signal encoding errors in
the C locale.])
- REPLACE_MBRTOC32=1
- ;;
- esac
- fi
- if test $HAVE_WORKING_MBRTOC32 = 0; then
- REPLACE_MBRTOC32=1
- fi
- fi
-])
-
-AC_DEFUN([gl_CHECK_FUNC_MBRTOC32],
-[
- dnl Cf. gl_CHECK_FUNCS_ANDROID
- AC_CHECK_DECL([mbrtoc32], , ,
- [[#ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- ]])
- if test $ac_cv_have_decl_mbrtoc32 = yes; then
- dnl We can't use AC_CHECK_FUNC here, because mbrtoc32() is defined as a
- dnl static inline function on Haiku 2020.
- AC_CACHE_CHECK([for mbrtoc32], [gl_cv_func_mbrtoc32],
- [AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <stdlib.h>
- #ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- ]],
- [[char32_t c;
- return mbrtoc32 (&c, "", 1, NULL) == 0;
- ]])
- ],
- [gl_cv_func_mbrtoc32=yes],
- [gl_cv_func_mbrtoc32=no])
- ])
- else
- gl_cv_func_mbrtoc32=no
- fi
-])
-
-dnl Test whether mbrtoc32 returns the correct value on empty input.
-
-AC_DEFUN([gl_MBRTOC32_EMPTY_INPUT],
-[
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
- AC_CACHE_CHECK([whether mbrtoc32 works on empty input],
- [gl_cv_func_mbrtoc32_empty_input],
- [
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
- #ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- static char32_t wc;
- static mbstate_t mbs;
- int
- main (void)
- {
- return mbrtoc32 (&wc, "", 0, &mbs) != (size_t) -2;
- }]])],
- [gl_cv_func_mbrtoc32_empty_input=yes],
- [gl_cv_func_mbrtoc32_empty_input=no],
- [case "$host_os" in
- # Guess no on glibc systems.
- *-gnu* | gnu*) gl_cv_func_mbrtoc32_empty_input="guessing no" ;;
- # Guess no on Android.
- linux*-android*) gl_cv_func_mbrtoc32_empty_input="guessing no" ;;
- # Guess no on native Windows.
- mingw* | windows*) gl_cv_func_mbrtoc32_empty_input="guessing no" ;;
- *) gl_cv_func_mbrtoc32_empty_input="guessing yes" ;;
- esac
- ])
- ])
-])
-
-dnl <https://pubs.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html>
-dnl POSIX:2018 says regarding mbrtowc: "In the POSIX locale an [EILSEQ] error
-dnl cannot occur since all byte values are valid characters." It is reasonable
-dnl to expect mbrtoc32 to behave in the same way.
-
-AC_DEFUN([gl_MBRTOC32_C_LOCALE],
-[
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
- AC_CACHE_CHECK([whether the C locale is free of encoding errors],
- [gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ],
- [AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <limits.h>
- #include <locale.h>
- #ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- ]], [[
- int i;
- char *locale = setlocale (LC_ALL, "C");
- if (! locale)
- return 2;
- for (i = CHAR_MIN; i <= CHAR_MAX; i++)
- {
- char c = i;
- char32_t wc;
- mbstate_t mbs = { 0, };
- size_t ss = mbrtoc32 (&wc, &c, 1, &mbs);
- if (1 < ss)
- return 3;
- }
- return 0;
- ]])],
- [gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ=yes],
- [gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ=no],
- [case "$host_os" in
- # Guess yes on native Windows.
- mingw* | windows*)
gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ="guessing yes" ;;
- *)
gl_cv_func_mbrtoc32_C_locale_sans_EILSEQ="$gl_cross_guess_normal" ;;
- esac
- ])
- ])
-])
-
-dnl Test whether mbrtoc32 works not worse than mbrtowc.
-dnl Result is HAVE_WORKING_MBRTOC32.
-
-AC_DEFUN([gl_MBRTOC32_SANITYCHECK],
-[
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([gl_TYPE_CHAR32_T])
- AC_REQUIRE([gl_CHECK_FUNC_MBRTOC32])
- AC_REQUIRE([gt_LOCALE_FR])
- AC_REQUIRE([gt_LOCALE_ZH_CN])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
- if test $GNULIBHEADERS_OVERRIDE_CHAR32_T = 1 || test $gl_cv_func_mbrtoc32 =
no; then
- HAVE_WORKING_MBRTOC32=0
- else
- AC_CACHE_CHECK([whether mbrtoc32 works as well as mbrtowc],
- [gl_cv_func_mbrtoc32_sanitycheck],
- [
- dnl Initial guess, used when cross-compiling or when no suitable locale
- dnl is present.
-changequote(,)dnl
- case "$host_os" in
- # Guess no on FreeBSD, Solaris, native Windows.
- freebsd* | midnightbsd* | solaris* | mingw* | windows*)
- gl_cv_func_mbrtoc32_sanitycheck="guessing no"
- ;;
- # Guess yes otherwise.
- *)
- gl_cv_func_mbrtoc32_sanitycheck="guessing yes"
- ;;
- esac
-changequote([,])dnl
- if test $LOCALE_FR != none || test $LOCALE_ZH_CN != none; then
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-#ifdef __HAIKU__
- #include <stdint.h>
-#endif
-#include <uchar.h>
-int main ()
-{
- int result = 0;
- /* This fails on native Windows:
- mbrtoc32 returns (size_t)-1.
- mbrtowc returns 1 (correct). */
- if (strcmp ("$LOCALE_FR", "none") != 0
- && setlocale (LC_ALL, "$LOCALE_FR") != NULL)
- {
- mbstate_t state;
- wchar_t wc = (wchar_t) 0xBADFACE;
- memset (&state, '\0', sizeof (mbstate_t));
- if (mbrtowc (&wc, "\374", 1, &state) == 1)
- {
- char32_t c32 = (wchar_t) 0xBADFACE;
- memset (&state, '\0', sizeof (mbstate_t));
- if (mbrtoc32 (&c32, "\374", 1, &state) != 1)
- result |= 1;
- }
- }
- /* This fails on FreeBSD 13.0 and Solaris 11.4:
- mbrtoc32 returns (size_t)-2 or (size_t)-1.
- mbrtowc returns 4 (correct). */
- if (strcmp ("$LOCALE_ZH_CN", "none") != 0
- && setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
- {
- mbstate_t state;
- wchar_t wc = (wchar_t) 0xBADFACE;
- memset (&state, '\0', sizeof (mbstate_t));
- if (mbrtowc (&wc, "\224\071\375\067", 4, &state) == 4)
- {
- char32_t c32 = (wchar_t) 0xBADFACE;
- memset (&state, '\0', sizeof (mbstate_t));
- if (mbrtoc32 (&c32, "\224\071\375\067", 4, &state) != 4)
- result |= 2;
- }
- }
- return result;
-}]])],
- [gl_cv_func_mbrtoc32_sanitycheck=yes],
- [gl_cv_func_mbrtoc32_sanitycheck=no],
- [:])
- fi
- ])
- case "$gl_cv_func_mbrtoc32_sanitycheck" in
- *yes)
- HAVE_WORKING_MBRTOC32=1
- AC_DEFINE([HAVE_WORKING_MBRTOC32], [1],
- [Define if the mbrtoc32 function basically works.])
- ;;
- *) HAVE_WORKING_MBRTOC32=0 ;;
- esac
- fi
- AC_SUBST([HAVE_WORKING_MBRTOC32])
-])
-
-# Prerequisites of lib/mbrtoc32.c and lib/lc-charset-dispatch.c.
-AC_DEFUN([gl_PREREQ_MBRTOC32], [
- :
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/uchar_h.m4
b/tp/Texinfo/XS/gnulib/m4/uchar_h.m4
deleted file mode 100644
index 299075f572..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/uchar_h.m4
+++ /dev/null
@@ -1,249 +0,0 @@
-# uchar_h.m4 serial 31
-dnl Copyright (C) 2019-2023 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Prepare the overridden <uchar.h>.
-
-AC_DEFUN_ONCE([gl_UCHAR_H],
-[
- AC_REQUIRE([gl_UCHAR_H_DEFAULTS])
-
- gl_CHECK_NEXT_HEADERS([uchar.h])
- if test $ac_cv_header_uchar_h = yes; then
- HAVE_UCHAR_H=1
- else
- HAVE_UCHAR_H=0
- fi
- AC_SUBST([HAVE_UCHAR_H])
-
- gl_TYPE_CHAR8_T
- gl_TYPE_CHAR16_T
- gl_TYPE_CHAR32_T
-
- dnl In C++ mode, clang defines 'char16_t' and 'char32_t' as built-in types
- dnl on some platforms (e.g. OpenBSD 6.7), and as types defined by many
- dnl header files (<limits.h>, <stddef.h>, <stdint.h>, <stdio.h>, <stdlib.h>
- dnl and others) on some platforms (e.g. Mac OS X 10.13).
- dnl The same thing may also happen for 'char8_t'; so, be prepared for it.
- m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])])
- CXX_HAS_UCHAR_TYPES=0
- if test $HAVE_UCHAR_H = 0; then
- if test "$CXX" != no; then
- AC_CACHE_CHECK([whether the C++ compiler predefines the <uchar.h> types],
- [gl_cv_cxx_has_uchar_types],
- [dnl We can't use AC_LANG_PUSH([C++]) and AC_LANG_POP([C++]) here, due
to
- dnl an autoconf bug <https://savannah.gnu.org/support/?110294>.
- cat > conftest.cpp <<\EOF
-#include <stddef.h>
-char16_t a;
-char32_t b;
-EOF
- gl_command="$CXX $CXXFLAGS $CPPFLAGS -c conftest.cpp"
- if AC_TRY_EVAL([gl_command]); then
- gl_cv_cxx_has_uchar_types=yes
- else
- gl_cv_cxx_has_uchar_types=no
- fi
- rm -fr conftest*
- ])
- if test $gl_cv_cxx_has_uchar_types = yes; then
- CXX_HAS_UCHAR_TYPES=1
- fi
- fi
- fi
- AC_SUBST([CXX_HAS_UCHAR_TYPES])
- CXX_HAS_CHAR8_TYPE=0
- if test $HAVE_UCHAR_H = 0; then
- if test "$CXX" != no; then
- AC_CACHE_CHECK([whether the C++ compiler predefines the char8_t types],
- [gl_cv_cxx_has_char8_type],
- [dnl We can't use AC_LANG_PUSH([C++]) and AC_LANG_POP([C++]) here, due
to
- dnl an autoconf bug <https://savannah.gnu.org/support/?110294>.
- cat > conftest.cpp <<\EOF
-#include <stddef.h>
-char8_t a;
-EOF
- gl_command="$CXX $CXXFLAGS $CPPFLAGS -c conftest.cpp"
- if AC_TRY_EVAL([gl_command]); then
- gl_cv_cxx_has_char8_type=yes
- else
- gl_cv_cxx_has_char8_type=no
- fi
- rm -fr conftest*
- ])
- if test $gl_cv_cxx_has_char8_type = yes; then
- CXX_HAS_CHAR8_TYPE=1
- fi
- fi
- fi
- AC_SUBST([CXX_HAS_CHAR8_TYPE])
-
- dnl Test whether a 'char32_t' can hold more characters than a 'wchar_t'.
- gl_STDINT_BITSIZEOF([wchar_t], [gl_STDINT_INCLUDES])
- if test $BITSIZEOF_WCHAR_T -lt 32; then
- SMALL_WCHAR_T=1
- else
- SMALL_WCHAR_T=0
- fi
- dnl SMALL_WCHAR_T is expected to be 1 on 32-bit AIX, Cygwin, native Windows.
- AC_SUBST([SMALL_WCHAR_T])
-
- dnl Check for declarations of anything we want to poison if the
- dnl corresponding gnulib module is not in use, and which is not
- dnl guaranteed by C11.
- gl_WARN_ON_USE_PREPARE([[
- #ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- ]], [c32rtomb mbrtoc16 mbrtoc32])
-])
-
-AC_DEFUN_ONCE([gl_TYPE_CHAR8_T],
-[
- dnl Determine whether gnulib's <uchar.h> would, if present, override char8_t.
- AC_CACHE_CHECK([whether char8_t is correctly defined],
- [gl_cv_type_char8_t_works],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[
- #ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- int verify[(char8_t)(-1) >= 0 && sizeof (char8_t) == sizeof
(unsigned char) ? 1 : -1];
- ]])
- ],
- [gl_cv_type_char8_t_works=yes],
- [gl_cv_type_char8_t_works=no])
- ])
- if test $gl_cv_type_char8_t_works = no; then
- GNULIBHEADERS_OVERRIDE_CHAR8_T=1
- else
- GNULIBHEADERS_OVERRIDE_CHAR8_T=0
- fi
- AC_SUBST([GNULIBHEADERS_OVERRIDE_CHAR8_T])
-])
-
-dnl On Haiku 2020, char16_t and char32_t are incorrectly defined.
-dnl See <https://dev.haiku-os.org/ticket/15990>.
-AC_DEFUN_ONCE([gl_TYPE_CHAR16_T],
-[
- dnl Determine whether gnulib's <uchar.h> would, if present, override
char16_t.
- AC_CACHE_CHECK([whether char16_t is correctly defined],
- [gl_cv_type_char16_t_works],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[
- #ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- /* For simplicity, assume that uint16_least_t is equivalent to
- 'unsigned short'. */
- int verify[(char16_t)(-1) >= 0 && sizeof (char16_t) == sizeof
(unsigned short) ? 1 : -1];
- ]])
- ],
- [gl_cv_type_char16_t_works=yes],
- [gl_cv_type_char16_t_works=no])
- ])
- if test $gl_cv_type_char16_t_works = no; then
- GNULIBHEADERS_OVERRIDE_CHAR16_T=1
- else
- GNULIBHEADERS_OVERRIDE_CHAR16_T=0
- fi
- AC_SUBST([GNULIBHEADERS_OVERRIDE_CHAR16_T])
-])
-AC_DEFUN_ONCE([gl_TYPE_CHAR32_T],
-[
- dnl Determine whether gnulib's <uchar.h> would, if present, override
char32_t.
- AC_CACHE_CHECK([whether char32_t is correctly defined],
- [gl_cv_type_char32_t_works],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[
- #ifdef __HAIKU__
- #include <stdint.h>
- #endif
- #include <uchar.h>
- /* For simplicity, assume that uint32_least_t is equivalent to
- 'unsigned int'. */
- int verify[(char32_t)(-1) >= 0 && sizeof (char32_t) == sizeof
(unsigned int) ? 1 : -1];
- ]])
- ],
- [gl_cv_type_char32_t_works=yes],
- [gl_cv_type_char32_t_works=no])
- ])
- if test $gl_cv_type_char32_t_works = no; then
- GNULIBHEADERS_OVERRIDE_CHAR32_T=1
- else
- GNULIBHEADERS_OVERRIDE_CHAR32_T=0
- fi
- AC_SUBST([GNULIBHEADERS_OVERRIDE_CHAR32_T])
-])
-
-# gl_UCHAR_MODULE_INDICATOR([modulename])
-# sets the shell variable that indicates the presence of the given module
-# to a C preprocessor expression that will evaluate to 1.
-# This macro invocation must not occur in macros that are AC_REQUIREd.
-AC_DEFUN([gl_UCHAR_MODULE_INDICATOR],
-[
- dnl Ensure to expand the default settings once only.
- gl_UCHAR_H_REQUIRE_DEFAULTS
- gl_MODULE_INDICATOR_SET_VARIABLE([$1])
- dnl Define it also as a C macro, for the benefit of the unit tests.
- gl_MODULE_INDICATOR_FOR_TESTS([$1])
-])
-
-# Initializes the default values for AC_SUBSTed shell variables.
-# This macro must not be AC_REQUIREd. It must only be invoked, and only
-# outside of macros or in macros that are not AC_REQUIREd.
-AC_DEFUN([gl_UCHAR_H_REQUIRE_DEFAULTS],
-[
- m4_defun(GL_MODULE_INDICATOR_PREFIX[_UCHAR_H_MODULE_INDICATOR_DEFAULTS], [
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BTOC32])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISALNUM])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISALPHA])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISBLANK])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISCNTRL])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISDIGIT])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISGRAPH])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISLOWER])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISPRINT])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISPUNCT])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISSPACE])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISUPPER])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32ISXDIGIT])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32TOLOWER])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32TOUPPER])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32WIDTH])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32RTOMB])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32SNRTOMBS])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32SRTOMBS])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32STOMBS])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32SWIDTH])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32TOB])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32_APPLY_MAPPING])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32_APPLY_TYPE_TEST])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32_GET_MAPPING])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_C32_GET_TYPE_TEST])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRTOC16])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRTOC32])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNRTOC32S])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRTOC32S])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOC32S])
- ])
- m4_require(GL_MODULE_INDICATOR_PREFIX[_UCHAR_H_MODULE_INDICATOR_DEFAULTS])
- AC_REQUIRE([gl_UCHAR_H_DEFAULTS])
-])
-
-AC_DEFUN([gl_UCHAR_H_DEFAULTS],
-[
- dnl Assume proper GNU behavior unless another module says otherwise.
- HAVE_C32RTOMB=1; AC_SUBST([HAVE_C32RTOMB])
- HAVE_MBRTOC16=1; AC_SUBST([HAVE_MBRTOC16])
- HAVE_MBRTOC32=1; AC_SUBST([HAVE_MBRTOC32])
- REPLACE_C32RTOMB=0; AC_SUBST([REPLACE_C32RTOMB])
- REPLACE_MBRTOC16=0; AC_SUBST([REPLACE_MBRTOC16])
- REPLACE_MBRTOC32=0; AC_SUBST([REPLACE_MBRTOC32])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/wctype_h.m4
b/tp/Texinfo/XS/gnulib/m4/wctype_h.m4
deleted file mode 100644
index ac9c35b2da..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/wctype_h.m4
+++ /dev/null
@@ -1,204 +0,0 @@
-# wctype_h.m4 serial 33
-
-dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
-
-dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl Written by Paul Eggert.
-
-AC_DEFUN_ONCE([gl_WCTYPE_H],
-[
- AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_CANONICAL_HOST])
- AC_CHECK_FUNCS_ONCE([iswcntrl])
- if test $ac_cv_func_iswcntrl = yes; then
- HAVE_ISWCNTRL=1
- else
- HAVE_ISWCNTRL=0
- fi
- AC_SUBST([HAVE_ISWCNTRL])
-
- AC_REQUIRE([gt_TYPE_WINT_T])
- if test $gt_cv_c_wint_t = yes; then
- HAVE_WINT_T=1
- else
- HAVE_WINT_T=0
- fi
- AC_SUBST([HAVE_WINT_T])
-
- AC_REQUIRE([gl_TYPE_WINT_T_PREREQ])
-
- gl_CHECK_NEXT_HEADERS([wctype.h])
- if test $ac_cv_header_wctype_h = yes; then
- if test $ac_cv_func_iswcntrl = yes; then
- dnl Linux libc5 has an iswprint function that returns 0 for all
arguments.
- dnl The other functions are likely broken in the same way.
- AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works],
- [
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
- #include <wchar.h>
- #include <wctype.h>
- int main () { return iswprint ('x') == 0; }
- ]])],
- [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no],
- [dnl Guess no on Linux libc5, yes otherwise.
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
- #if __GNU_LIBRARY__ == 1
- Linux libc5 i18n is broken.
- #endif]], [[]])],
- [gl_cv_func_iswcntrl_works="guessing yes"],
- [gl_cv_func_iswcntrl_works="guessing no"])
- ])
- ])
- fi
- HAVE_WCTYPE_H=1
- else
- HAVE_WCTYPE_H=0
- fi
- AC_SUBST([HAVE_WCTYPE_H])
-
- if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then
- REPLACE_ISWCNTRL=1
- else
- case "$gl_cv_func_iswcntrl_works" in
- *yes) REPLACE_ISWCNTRL=0 ;;
- *) REPLACE_ISWCNTRL=1 ;;
- esac
- fi
- AC_SUBST([REPLACE_ISWCNTRL])
-
- if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
- dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>.
- :
- fi
-
- if test $REPLACE_ISWCNTRL = 1; then
- REPLACE_TOWLOWER=1
- else
- AC_CHECK_FUNCS([towlower])
- if test $ac_cv_func_towlower = yes; then
- REPLACE_TOWLOWER=0
- else
- AC_CHECK_DECLS([towlower],,,
- [[#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
- dnl collision with gnulib's replacement.
- REPLACE_TOWLOWER=1
- else
- REPLACE_TOWLOWER=0
- fi
- fi
- fi
- AC_SUBST([REPLACE_TOWLOWER])
-
- if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
- dnl Redefine towlower, towupper in <wctype.h>.
- :
- fi
-
- dnl We assume that the wctype() and iswctype() functions exist if and only
- dnl if the type wctype_t is defined in <wchar.h> or in <wctype.h> if that
- dnl exists.
- dnl HP-UX 11.00 declares all these in <wchar.h> and lacks <wctype.h>.
- AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <wchar.h>
- #if HAVE_WCTYPE_H
- # include <wctype.h>
- #endif
- wctype_t a;
- ]],
- [[]])],
- [gl_cv_type_wctype_t=yes],
- [gl_cv_type_wctype_t=no])
- ])
- if test $gl_cv_type_wctype_t = no; then
- HAVE_WCTYPE_T=0
- fi
-
- dnl We assume that the wctrans() and towctrans() functions exist if and only
- dnl if the type wctrans_t is defined in <wctype.h>.
- AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <wchar.h>
- #include <wctype.h>
- wctrans_t a;
- ]],
- [[]])],
- [gl_cv_type_wctrans_t=yes],
- [gl_cv_type_wctrans_t=no])
- ])
- if test $gl_cv_type_wctrans_t = no; then
- HAVE_WCTRANS_T=0
- fi
-
- dnl Check for declarations of anything we want to poison if the
- dnl corresponding gnulib module is not in use.
- gl_WARN_ON_USE_PREPARE([[
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <wchar.h>
-#endif
-#include <wctype.h>
- ]],
- [wctype iswctype wctrans towctrans
- ])
-])
-
-# gl_WCTYPE_MODULE_INDICATOR([modulename])
-# sets the shell variable that indicates the presence of the given module
-# to a C preprocessor expression that will evaluate to 1.
-# This macro invocation must not occur in macros that are AC_REQUIREd.
-AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR],
-[
- dnl Ensure to expand the default settings once only.
- gl_WCTYPE_H_REQUIRE_DEFAULTS
- gl_MODULE_INDICATOR_SET_VARIABLE([$1])
- dnl Define it also as a C macro, for the benefit of the unit tests.
- gl_MODULE_INDICATOR_FOR_TESTS([$1])
-])
-
-# Initializes the default values for AC_SUBSTed shell variables.
-# This macro must not be AC_REQUIREd. It must only be invoked, and only
-# outside of macros or in macros that are not AC_REQUIREd.
-AC_DEFUN([gl_WCTYPE_H_REQUIRE_DEFAULTS],
-[
- m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS], [
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWBLANK])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWDIGIT])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWPUNCT])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWXDIGIT])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTYPE])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWCTYPE])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTRANS])
- gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOWCTRANS])
- ])
- m4_require(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS])
- AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
-])
-
-AC_DEFUN([gl_WCTYPE_H_DEFAULTS],
-[
- dnl Assume proper GNU behavior unless another module says otherwise.
- HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK])
- HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T])
- HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T])
- REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK])
- REPLACE_ISWDIGIT=0; AC_SUBST([REPLACE_ISWDIGIT])
- REPLACE_ISWPUNCT=0; AC_SUBST([REPLACE_ISWPUNCT])
- REPLACE_ISWXDIGIT=0; AC_SUBST([REPLACE_ISWXDIGIT])
- REPLACE_WCTRANS=0; AC_SUBST([REPLACE_WCTRANS])
- REPLACE_WCTYPE=0; AC_SUBST([REPLACE_WCTYPE])
-])
diff --git a/tp/Texinfo/XS/gnulib/m4/wcwidth.m4
b/tp/Texinfo/XS/gnulib/m4/wcwidth.m4
deleted file mode 100644
index e7829e98c8..0000000000
--- a/tp/Texinfo/XS/gnulib/m4/wcwidth.m4
+++ /dev/null
@@ -1,115 +0,0 @@
-# wcwidth.m4 serial 36
-dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FUNC_WCWIDTH],
-[
- AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-
- dnl Persuade glibc <wchar.h> to declare wcwidth().
- AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
-
- AC_CHECK_HEADERS_ONCE([wchar.h])
- AC_CHECK_FUNCS_ONCE([wcwidth])
-
- AC_CHECK_DECLS([wcwidth], [], [], [[
- #include <wchar.h>
- ]])
- if test $ac_cv_have_decl_wcwidth != yes; then
- HAVE_DECL_WCWIDTH=0
- fi
-
- if test $ac_cv_func_wcwidth != yes; then
- AC_CACHE_CHECK([whether wcwidth is a macro],
- [gl_cv_func_wcwidth_macro],
- [AC_EGREP_CPP([wchar_header_defines_wcwidth], [
-#include <wchar.h>
-#ifdef wcwidth
- wchar_header_defines_wcwidth
-#endif],
- [gl_cv_func_wcwidth_macro=yes],
- [gl_cv_func_wcwidth_macro=no])
- ])
- fi
-
- if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes;
then
- HAVE_WCWIDTH=1
- dnl On Mac OS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
- dnl On macOS 12.5, NetBSD 9.0, OpenBSD 5.0, MidnightBSD 1.1,
- dnl wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1.
- dnl On macOS 12.5, NetBSD 9.0, MidnightBSD 1.1, OSF/1 5.1,
- dnl wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
- dnl On OpenBSD 5.8, wcwidth(0xFF1A) (FULLWIDTH COLON) returns 0.
- dnl This leads to bugs in 'ls' (coreutils).
- dnl On Solaris 11.4, wcwidth(0x2202) (PARTIAL DIFFERENTIAL) returns 2,
- dnl even in Western locales.
- AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
- [gl_cv_func_wcwidth_works],
- [
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <locale.h>
-#include <wchar.h>
-#if !HAVE_DECL_WCWIDTH
-extern
-# ifdef __cplusplus
-"C"
-# endif
-int wcwidth (int);
-#endif
-int main ()
-{
- int result = 0;
- if (setlocale (LC_ALL, "en_US.UTF-8") != NULL)
- {
- if (wcwidth (0x0301) > 0)
- result |= 1;
- if (wcwidth (0x05B0) > 0)
- result |= 2;
- if (wcwidth (0x200B) > 0)
- result |= 4;
- if (wcwidth (0xFF1A) == 0)
- result |= 8;
- if (wcwidth (0x2202) > 1)
- result |= 16;
- }
- return result;
-}]])],
- [gl_cv_func_wcwidth_works=yes],
- [gl_cv_func_wcwidth_works=no],
- [
-changequote(,)dnl
- case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu* | gnu*) gl_cv_func_wcwidth_works="guessing yes";;
- # Guess yes on musl systems.
- *-musl* | midipix*) gl_cv_func_wcwidth_works="guessing yes";;
- # Guess yes on AIX 7 systems.
- aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
- *)
gl_cv_func_wcwidth_works="$gl_cross_guess_normal";;
- esac
-changequote([,])dnl
- ])
- ])
- case "$gl_cv_func_wcwidth_works" in
- *yes) ;;
- *no) REPLACE_WCWIDTH=1 ;;
- esac
- else
- HAVE_WCWIDTH=0
- fi
- dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not
- dnl have the wcwidth function, then it does not declare it.
-])
-
-# Prerequisites of lib/wcwidth.c.
-AC_DEFUN([gl_PREREQ_WCWIDTH], [
- AC_REQUIRE([AC_C_INLINE])
- :
-])
- branch master updated: Update required gnulib modules for XS,
Gavin D. Smith <=