texinfo-commits
[Top][All Lists]
Advanced

[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])
-  :
-])



reply via email to

[Prev in Thread] Current Thread [Next in Thread]