summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2016-07-10 12:44:35 +0200
committerAndy Wingo <wingo@pobox.com>2016-07-10 12:44:35 +0200
commitb05b67b2b3677be51297791ad16cd73a37918ada (patch)
tree180118f6bcd6216441254f845bc0ecbdc7b7cb34 /lib
parentd484bfbacec75941ba643ddc600e995f2c160928 (diff)
downloadguile-b05b67b2b3677be51297791ad16cd73a37918ada.tar.gz
Avoid Gnulib unistr/* modules
(unistr/base, unistr/u8-mbtouc, unistr/u8-mbtouc-unsafe) (unistr/u8-mbtoucr, unistr/u8-prev unistr/u8-uctomb, unitypes): --avoid these modules.
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile.am101
-rw-r--r--lib/unistr.in.h750
-rw-r--r--lib/unistr/u8-mbtouc-aux.c240
-rw-r--r--lib/unistr/u8-mbtouc-unsafe-aux.c260
-rw-r--r--lib/unistr/u8-mbtouc-unsafe.c271
-rw-r--r--lib/unistr/u8-mbtouc.c250
-rw-r--r--lib/unistr/u8-mbtoucr.c285
-rw-r--r--lib/unistr/u8-prev.c93
-rw-r--r--lib/unistr/u8-uctomb-aux.c69
-rw-r--r--lib/unistr/u8-uctomb.c88
-rw-r--r--lib/unitypes.in.h46
11 files changed, 2 insertions, 2451 deletions
diff --git a/lib/Makefile.am b/lib/Makefile.am
index b65c94279..adf95373e 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -21,9 +21,9 @@
# the same distribution terms as the rest of that program.
#
# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --local-dir=gnulib-local --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --lgpl=3 --conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alignof alloca-opt announce-gen autobuild bind byteswap c-strcase canonicalize-lgpl ceil clock-time close connect copysign dirfd duplocale environ extensions flock floor fpieee frexp fstat fsync full-read full-write func gendocs getaddrinfo getlogin getpeername getsockname getsockopt git-version-gen gitlog-to-changelog gnu-web-doc-update gnupload havelib iconv_open-utf inet_ntop inet_pton isfinite isinf isnan ldexp lib-symbol-versions lib-symbol-visibility libunistring link listen localcharset locale log1p lstat maintainer-makefile malloc-gnu malloca mkdir mkstemp nl_langinfo nproc open pipe-posix pipe2 poll putenv readlink recv recvfrom regex rename rmdir select send sendto setenv setsockopt shutdown socket stat-time stdlib strftime striconveh string sys_stat time times trunc unistd verify vsnprintf warnings wchar
+# Reproduce by: gnulib-tool --import --local-dir=gnulib-local --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --avoid=unistr/base --avoid=unistr/u8-mbtouc --avoid=unistr/u8-mbtouc-unsafe --avoid=unistr/u8-mbtoucr --avoid=unistr/u8-prev --avoid=unistr/u8-uctomb --avoid=unitypes --lgpl=3 --conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alignof alloca-opt announce-gen autobuild bind byteswap c-strcase canonicalize-lgpl ceil clock-time close connect copysign dirfd duplocale environ extensions flock floor fpieee frexp fstat fsync full-read full-write func gendocs getaddrinfo getlogin getpeername getsockname getsockopt git-version-gen gitlog-to-changelog gnu-web-doc-update gnupload havelib iconv_open-utf inet_ntop inet_pton isfinite isinf isnan ldexp lib-symbol-versions lib-symbol-visibility libunistring link listen localcharset locale log1p lstat maintainer-makefile malloc-gnu malloca mkdir mkstemp nl_langinfo nproc open pipe-posix pipe2 poll putenv readlink recv recvfrom regex rename rmdir select send sendto setenv setsockopt shutdown socket stat-time stdlib strftime striconveh string sys_stat time times trunc unistd verify vsnprintf warnings wchar
-AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 gnits
SUBDIRS =
noinst_HEADERS =
@@ -2014,31 +2014,6 @@ EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h
## end gnulib module snippet/c++defs
-## begin gnulib module snippet/unused-parameter
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += unused-parameter.h
-# The unused-parameter.h that gets inserted into generated .h files is the same
-# as build-aux/snippet/unused-parameter.h, except that it has the copyright
-# header cut off.
-unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
- < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
- > $@-t && \
- mv $@-t $@
-MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
-
-UNUSED_PARAMETER_H=unused-parameter.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/snippet/unused-parameter.h
-
-## end gnulib module snippet/unused-parameter
-
## begin gnulib module snippet/warn-on-use
BUILT_SOURCES += warn-on-use.h
@@ -3161,78 +3136,6 @@ EXTRA_DIST += unistd.in.h
## end gnulib module unistd
-## begin gnulib module unistr/base
-
-BUILT_SOURCES += $(LIBUNISTRING_UNISTR_H)
-
-unistr.h: unistr.in.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- cat $(srcdir)/unistr.in.h; \
- } > $@-t && \
- mv -f $@-t $@
-MOSTLYCLEANFILES += unistr.h unistr.h-t
-
-EXTRA_DIST += unistr.in.h
-
-## end gnulib module unistr/base
-
-## begin gnulib module unistr/u8-mbtouc
-
-if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC
-libgnu_la_SOURCES += unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
-endif
-
-## end gnulib module unistr/u8-mbtouc
-
-## begin gnulib module unistr/u8-mbtouc-unsafe
-
-if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE
-libgnu_la_SOURCES += unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
-endif
-
-## end gnulib module unistr/u8-mbtouc-unsafe
-
-## begin gnulib module unistr/u8-mbtoucr
-
-if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR
-libgnu_la_SOURCES += unistr/u8-mbtoucr.c
-endif
-
-## end gnulib module unistr/u8-mbtoucr
-
-## begin gnulib module unistr/u8-prev
-
-if LIBUNISTRING_COMPILE_UNISTR_U8_PREV
-libgnu_la_SOURCES += unistr/u8-prev.c
-endif
-
-## end gnulib module unistr/u8-prev
-
-## begin gnulib module unistr/u8-uctomb
-
-if LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB
-libgnu_la_SOURCES += unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
-endif
-
-## end gnulib module unistr/u8-uctomb
-
-## begin gnulib module unitypes
-
-BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H)
-
-unitypes.h: unitypes.in.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- cat $(srcdir)/unitypes.in.h; \
- } > $@-t && \
- mv -f $@-t $@
-MOSTLYCLEANFILES += unitypes.h unitypes.h-t
-
-EXTRA_DIST += unitypes.in.h
-
-## end gnulib module unitypes
-
## begin gnulib module unsetenv
if gl_GNULIB_ENABLED_unsetenv
diff --git a/lib/unistr.in.h b/lib/unistr.in.h
deleted file mode 100644
index 2a64b31d9..000000000
--- a/lib/unistr.in.h
+++ /dev/null
@@ -1,750 +0,0 @@
-/* Elementary Unicode string functions.
- Copyright (C) 2001-2002, 2005-2016 Free Software Foundation, Inc.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#ifndef _UNISTR_H
-#define _UNISTR_H
-
-#include "unitypes.h"
-
-/* Get common macros for C. */
-#include "unused-parameter.h"
-
-/* Get bool. */
-#include <stdbool.h>
-
-/* Get size_t. */
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Conventions:
-
- All functions prefixed with u8_ operate on UTF-8 encoded strings.
- Their unit is an uint8_t (1 byte).
-
- All functions prefixed with u16_ operate on UTF-16 encoded strings.
- Their unit is an uint16_t (a 2-byte word).
-
- All functions prefixed with u32_ operate on UCS-4 encoded strings.
- Their unit is an uint32_t (a 4-byte word).
-
- All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
- n units.
-
- All arguments starting with "str" and the arguments of functions starting
- with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string
- which terminates at the first NUL unit. This termination unit is
- considered part of the string for all memory allocation purposes, but
- is not considered part of the string for all other logical purposes.
-
- Functions returning a string result take a (resultbuf, lengthp) argument
- pair. If resultbuf is not NULL and the result fits into *lengthp units,
- it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly
- allocated string is returned. In both cases, *lengthp is set to the
- length (number of units) of the returned string. In case of error,
- NULL is returned and errno is set. */
-
-
-/* Elementary string checks. */
-
-/* Check whether an UTF-8 string is well-formed.
- Return NULL if valid, or a pointer to the first invalid unit otherwise. */
-extern const uint8_t *
- u8_check (const uint8_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-
-/* Check whether an UTF-16 string is well-formed.
- Return NULL if valid, or a pointer to the first invalid unit otherwise. */
-extern const uint16_t *
- u16_check (const uint16_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-
-/* Check whether an UCS-4 string is well-formed.
- Return NULL if valid, or a pointer to the first invalid unit otherwise. */
-extern const uint32_t *
- u32_check (const uint32_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-
-
-/* Elementary string conversions. */
-
-/* Convert an UTF-8 string to an UTF-16 string. */
-extern uint16_t *
- u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf,
- size_t *lengthp);
-
-/* Convert an UTF-8 string to an UCS-4 string. */
-extern uint32_t *
- u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf,
- size_t *lengthp);
-
-/* Convert an UTF-16 string to an UTF-8 string. */
-extern uint8_t *
- u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf,
- size_t *lengthp);
-
-/* Convert an UTF-16 string to an UCS-4 string. */
-extern uint32_t *
- u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf,
- size_t *lengthp);
-
-/* Convert an UCS-4 string to an UTF-8 string. */
-extern uint8_t *
- u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf,
- size_t *lengthp);
-
-/* Convert an UCS-4 string to an UTF-16 string. */
-extern uint16_t *
- u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf,
- size_t *lengthp);
-
-
-/* Elementary string functions. */
-
-/* Return the length (number of units) of the first character in S, which is
- no longer than N. Return 0 if it is the NUL character. Return -1 upon
- failure. */
-/* Similar to mblen(), except that s must not be NULL. */
-extern int
- u8_mblen (const uint8_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern int
- u16_mblen (const uint16_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern int
- u32_mblen (const uint32_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-
-/* Return the length (number of units) of the first character in S, putting
- its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd,
- and an appropriate number of units is returned.
- The number of available units, N, must be > 0. */
-/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0,
- and the NUL character is not treated specially. */
-/* The variants with _safe suffix are safe, even if the library is compiled
- without --enable-safety. */
-
-#if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING
-# if !HAVE_INLINE
-extern int
- u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n);
-# else
-extern int
- u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n);
-static inline int
-u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
-{
- uint8_t c = *s;
-
- if (c < 0x80)
- {
- *puc = c;
- return 1;
- }
- else
- return u8_mbtouc_unsafe_aux (puc, s, n);
-}
-# endif
-#endif
-
-#if GNULIB_UNISTR_U16_MBTOUC_UNSAFE || HAVE_LIBUNISTRING
-# if !HAVE_INLINE
-extern int
- u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n);
-# else
-extern int
- u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n);
-static inline int
-u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n)
-{
- uint16_t c = *s;
-
- if (c < 0xd800 || c >= 0xe000)
- {
- *puc = c;
- return 1;
- }
- else
- return u16_mbtouc_unsafe_aux (puc, s, n);
-}
-# endif
-#endif
-
-#if GNULIB_UNISTR_U32_MBTOUC_UNSAFE || HAVE_LIBUNISTRING
-# if !HAVE_INLINE
-extern int
- u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n);
-# else
-static inline int
-u32_mbtouc_unsafe (ucs4_t *puc,
- const uint32_t *s, size_t n _GL_UNUSED_PARAMETER)
-{
- uint32_t c = *s;
-
-# if CONFIG_UNICODE_SAFETY
- if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
-# endif
- *puc = c;
-# if CONFIG_UNICODE_SAFETY
- else
- /* invalid multibyte character */
- *puc = 0xfffd;
-# endif
- return 1;
-}
-# endif
-#endif
-
-#if GNULIB_UNISTR_U8_MBTOUC || HAVE_LIBUNISTRING
-# if !HAVE_INLINE
-extern int
- u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n);
-# else
-extern int
- u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n);
-static inline int
-u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
-{
- uint8_t c = *s;
-
- if (c < 0x80)
- {
- *puc = c;
- return 1;
- }
- else
- return u8_mbtouc_aux (puc, s, n);
-}
-# endif
-#endif
-
-#if GNULIB_UNISTR_U16_MBTOUC || HAVE_LIBUNISTRING
-# if !HAVE_INLINE
-extern int
- u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n);
-# else
-extern int
- u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n);
-static inline int
-u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n)
-{
- uint16_t c = *s;
-
- if (c < 0xd800 || c >= 0xe000)
- {
- *puc = c;
- return 1;
- }
- else
- return u16_mbtouc_aux (puc, s, n);
-}
-# endif
-#endif
-
-#if GNULIB_UNISTR_U32_MBTOUC || HAVE_LIBUNISTRING
-# if !HAVE_INLINE
-extern int
- u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n);
-# else
-static inline int
-u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER)
-{
- uint32_t c = *s;
-
- if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
- *puc = c;
- else
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 1;
-}
-# endif
-#endif
-
-/* Return the length (number of units) of the first character in S, putting
- its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd,
- and -1 is returned for an invalid sequence of units, -2 is returned for an
- incomplete sequence of units.
- The number of available units, N, must be > 0. */
-/* Similar to u*_mbtouc(), except that the return value gives more details
- about the failure, similar to mbrtowc(). */
-
-#if GNULIB_UNISTR_U8_MBTOUCR || HAVE_LIBUNISTRING
-extern int
- u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n);
-#endif
-
-#if GNULIB_UNISTR_U16_MBTOUCR || HAVE_LIBUNISTRING
-extern int
- u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n);
-#endif
-
-#if GNULIB_UNISTR_U32_MBTOUCR || HAVE_LIBUNISTRING
-extern int
- u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n);
-#endif
-
-/* Put the multibyte character represented by UC in S, returning its
- length. Return -1 upon failure, -2 if the number of available units, N,
- is too small. The latter case cannot occur if N >= 6/2/1, respectively. */
-/* Similar to wctomb(), except that s must not be NULL, and the argument n
- must be specified. */
-
-#if GNULIB_UNISTR_U8_UCTOMB || HAVE_LIBUNISTRING
-/* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */
-extern int
- u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n);
-# if !HAVE_INLINE
-extern int
- u8_uctomb (uint8_t *s, ucs4_t uc, int n);
-# else
-static inline int
-u8_uctomb (uint8_t *s, ucs4_t uc, int n)
-{
- if (uc < 0x80 && n > 0)
- {
- s[0] = uc;
- return 1;
- }
- else
- return u8_uctomb_aux (s, uc, n);
-}
-# endif
-#endif
-
-#if GNULIB_UNISTR_U16_UCTOMB || HAVE_LIBUNISTRING
-/* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */
-extern int
- u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n);
-# if !HAVE_INLINE
-extern int
- u16_uctomb (uint16_t *s, ucs4_t uc, int n);
-# else
-static inline int
-u16_uctomb (uint16_t *s, ucs4_t uc, int n)
-{
- if (uc < 0xd800 && n > 0)
- {
- s[0] = uc;
- return 1;
- }
- else
- return u16_uctomb_aux (s, uc, n);
-}
-# endif
-#endif
-
-#if GNULIB_UNISTR_U32_UCTOMB || HAVE_LIBUNISTRING
-# if !HAVE_INLINE
-extern int
- u32_uctomb (uint32_t *s, ucs4_t uc, int n);
-# else
-static inline int
-u32_uctomb (uint32_t *s, ucs4_t uc, int n)
-{
- if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000))
- {
- if (n > 0)
- {
- *s = uc;
- return 1;
- }
- else
- return -2;
- }
- else
- return -1;
-}
-# endif
-#endif
-
-/* Copy N units from SRC to DEST. */
-/* Similar to memcpy(). */
-extern uint8_t *
- u8_cpy (uint8_t *dest, const uint8_t *src, size_t n);
-extern uint16_t *
- u16_cpy (uint16_t *dest, const uint16_t *src, size_t n);
-extern uint32_t *
- u32_cpy (uint32_t *dest, const uint32_t *src, size_t n);
-
-/* Copy N units from SRC to DEST, guaranteeing correct behavior for
- overlapping memory areas. */
-/* Similar to memmove(). */
-extern uint8_t *
- u8_move (uint8_t *dest, const uint8_t *src, size_t n);
-extern uint16_t *
- u16_move (uint16_t *dest, const uint16_t *src, size_t n);
-extern uint32_t *
- u32_move (uint32_t *dest, const uint32_t *src, size_t n);
-
-/* Set the first N characters of S to UC. UC should be a character that
- occupies only 1 unit. */
-/* Similar to memset(). */
-extern uint8_t *
- u8_set (uint8_t *s, ucs4_t uc, size_t n);
-extern uint16_t *
- u16_set (uint16_t *s, ucs4_t uc, size_t n);
-extern uint32_t *
- u32_set (uint32_t *s, ucs4_t uc, size_t n);
-
-/* Compare S1 and S2, each of length N. */
-/* Similar to memcmp(). */
-extern int
- u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern int
- u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern int
- u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n)
- _UC_ATTRIBUTE_PURE;
-
-/* Compare S1 and S2. */
-/* Similar to the gnulib function memcmp2(). */
-extern int
- u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2)
- _UC_ATTRIBUTE_PURE;
-extern int
- u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2)
- _UC_ATTRIBUTE_PURE;
-extern int
- u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2)
- _UC_ATTRIBUTE_PURE;
-
-/* Search the string at S for UC. */
-/* Similar to memchr(). */
-extern uint8_t *
- u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-extern uint16_t *
- u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-extern uint32_t *
- u32_chr (const uint32_t *s, size_t n, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-
-/* Count the number of Unicode characters in the N units from S. */
-/* Similar to mbsnlen(). */
-extern size_t
- u8_mbsnlen (const uint8_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u16_mbsnlen (const uint16_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u32_mbsnlen (const uint32_t *s, size_t n)
- _UC_ATTRIBUTE_PURE;
-
-/* Elementary string functions with memory allocation. */
-
-/* Make a freshly allocated copy of S, of length N. */
-extern uint8_t *
- u8_cpy_alloc (const uint8_t *s, size_t n);
-extern uint16_t *
- u16_cpy_alloc (const uint16_t *s, size_t n);
-extern uint32_t *
- u32_cpy_alloc (const uint32_t *s, size_t n);
-
-/* Elementary string functions on NUL terminated strings. */
-
-/* Return the length (number of units) of the first character in S.
- Return 0 if it is the NUL character. Return -1 upon failure. */
-extern int
- u8_strmblen (const uint8_t *s)
- _UC_ATTRIBUTE_PURE;
-extern int
- u16_strmblen (const uint16_t *s)
- _UC_ATTRIBUTE_PURE;
-extern int
- u32_strmblen (const uint32_t *s)
- _UC_ATTRIBUTE_PURE;
-
-/* Return the length (number of units) of the first character in S, putting
- its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL
- character. Return -1 upon failure. */
-extern int
- u8_strmbtouc (ucs4_t *puc, const uint8_t *s);
-extern int
- u16_strmbtouc (ucs4_t *puc, const uint16_t *s);
-extern int
- u32_strmbtouc (ucs4_t *puc, const uint32_t *s);
-
-/* Forward iteration step. Advances the pointer past the next character,
- or returns NULL if the end of the string has been reached. Puts the
- character's 'ucs4_t' representation in *PUC. */
-extern const uint8_t *
- u8_next (ucs4_t *puc, const uint8_t *s);
-extern const uint16_t *
- u16_next (ucs4_t *puc, const uint16_t *s);
-extern const uint32_t *
- u32_next (ucs4_t *puc, const uint32_t *s);
-
-/* Backward iteration step. Advances the pointer to point to the previous
- character, or returns NULL if the beginning of the string had been reached.
- Puts the character's 'ucs4_t' representation in *PUC. */
-extern const uint8_t *
- u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start);
-extern const uint16_t *
- u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start);
-extern const uint32_t *
- u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start);
-
-/* Return the number of units in S. */
-/* Similar to strlen(), wcslen(). */
-extern size_t
- u8_strlen (const uint8_t *s)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u16_strlen (const uint16_t *s)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u32_strlen (const uint32_t *s)
- _UC_ATTRIBUTE_PURE;
-
-/* Return the number of units in S, but at most MAXLEN. */
-/* Similar to strnlen(), wcsnlen(). */
-extern size_t
- u8_strnlen (const uint8_t *s, size_t maxlen)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u16_strnlen (const uint16_t *s, size_t maxlen)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u32_strnlen (const uint32_t *s, size_t maxlen)
- _UC_ATTRIBUTE_PURE;
-
-/* Copy SRC to DEST. */
-/* Similar to strcpy(), wcscpy(). */
-extern uint8_t *
- u8_strcpy (uint8_t *dest, const uint8_t *src);
-extern uint16_t *
- u16_strcpy (uint16_t *dest, const uint16_t *src);
-extern uint32_t *
- u32_strcpy (uint32_t *dest, const uint32_t *src);
-
-/* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */
-/* Similar to stpcpy(). */
-extern uint8_t *
- u8_stpcpy (uint8_t *dest, const uint8_t *src);
-extern uint16_t *
- u16_stpcpy (uint16_t *dest, const uint16_t *src);
-extern uint32_t *
- u32_stpcpy (uint32_t *dest, const uint32_t *src);
-
-/* Copy no more than N units of SRC to DEST. */
-/* Similar to strncpy(), wcsncpy(). */
-extern uint8_t *
- u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n);
-extern uint16_t *
- u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n);
-extern uint32_t *
- u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n);
-
-/* Copy no more than N units of SRC to DEST. Return a pointer past the last
- non-NUL unit written into DEST. */
-/* Similar to stpncpy(). */
-extern uint8_t *
- u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n);
-extern uint16_t *
- u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n);
-extern uint32_t *
- u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n);
-
-/* Append SRC onto DEST. */
-/* Similar to strcat(), wcscat(). */
-extern uint8_t *
- u8_strcat (uint8_t *dest, const uint8_t *src);
-extern uint16_t *
- u16_strcat (uint16_t *dest, const uint16_t *src);
-extern uint32_t *
- u32_strcat (uint32_t *dest, const uint32_t *src);
-
-/* Append no more than N units of SRC onto DEST. */
-/* Similar to strncat(), wcsncat(). */
-extern uint8_t *
- u8_strncat (uint8_t *dest, const uint8_t *src, size_t n);
-extern uint16_t *
- u16_strncat (uint16_t *dest, const uint16_t *src, size_t n);
-extern uint32_t *
- u32_strncat (uint32_t *dest, const uint32_t *src, size_t n);
-
-/* Compare S1 and S2. */
-/* Similar to strcmp(), wcscmp(). */
-#ifdef __sun
-/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */
-extern int
- u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2)
- _UC_ATTRIBUTE_PURE;
-# define u8_strcmp u8_strcmp_gnu
-#else
-extern int
- u8_strcmp (const uint8_t *s1, const uint8_t *s2)
- _UC_ATTRIBUTE_PURE;
-#endif
-extern int
- u16_strcmp (const uint16_t *s1, const uint16_t *s2)
- _UC_ATTRIBUTE_PURE;
-extern int
- u32_strcmp (const uint32_t *s1, const uint32_t *s2)
- _UC_ATTRIBUTE_PURE;
-
-/* Compare S1 and S2 using the collation rules of the current locale.
- Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2.
- Upon failure, set errno and return any value. */
-/* Similar to strcoll(), wcscoll(). */
-extern int
- u8_strcoll (const uint8_t *s1, const uint8_t *s2);
-extern int
- u16_strcoll (const uint16_t *s1, const uint16_t *s2);
-extern int
- u32_strcoll (const uint32_t *s1, const uint32_t *s2);
-
-/* Compare no more than N units of S1 and S2. */
-/* Similar to strncmp(), wcsncmp(). */
-extern int
- u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern int
- u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n)
- _UC_ATTRIBUTE_PURE;
-extern int
- u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n)
- _UC_ATTRIBUTE_PURE;
-
-/* Duplicate S, returning an identical malloc'd string. */
-/* Similar to strdup(), wcsdup(). */
-extern uint8_t *
- u8_strdup (const uint8_t *s);
-extern uint16_t *
- u16_strdup (const uint16_t *s);
-extern uint32_t *
- u32_strdup (const uint32_t *s);
-
-/* Find the first occurrence of UC in STR. */
-/* Similar to strchr(), wcschr(). */
-extern uint8_t *
- u8_strchr (const uint8_t *str, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-extern uint16_t *
- u16_strchr (const uint16_t *str, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-extern uint32_t *
- u32_strchr (const uint32_t *str, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-
-/* Find the last occurrence of UC in STR. */
-/* Similar to strrchr(), wcsrchr(). */
-extern uint8_t *
- u8_strrchr (const uint8_t *str, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-extern uint16_t *
- u16_strrchr (const uint16_t *str, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-extern uint32_t *
- u32_strrchr (const uint32_t *str, ucs4_t uc)
- _UC_ATTRIBUTE_PURE;
-
-/* Return the length of the initial segment of STR which consists entirely
- of Unicode characters not in REJECT. */
-/* Similar to strcspn(), wcscspn(). */
-extern size_t
- u8_strcspn (const uint8_t *str, const uint8_t *reject)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u16_strcspn (const uint16_t *str, const uint16_t *reject)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u32_strcspn (const uint32_t *str, const uint32_t *reject)
- _UC_ATTRIBUTE_PURE;
-
-/* Return the length of the initial segment of STR which consists entirely
- of Unicode characters in ACCEPT. */
-/* Similar to strspn(), wcsspn(). */
-extern size_t
- u8_strspn (const uint8_t *str, const uint8_t *accept)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u16_strspn (const uint16_t *str, const uint16_t *accept)
- _UC_ATTRIBUTE_PURE;
-extern size_t
- u32_strspn (const uint32_t *str, const uint32_t *accept)
- _UC_ATTRIBUTE_PURE;
-
-/* Find the first occurrence in STR of any character in ACCEPT. */
-/* Similar to strpbrk(), wcspbrk(). */
-extern uint8_t *
- u8_strpbrk (const uint8_t *str, const uint8_t *accept)
- _UC_ATTRIBUTE_PURE;
-extern uint16_t *
- u16_strpbrk (const uint16_t *str, const uint16_t *accept)
- _UC_ATTRIBUTE_PURE;
-extern uint32_t *
- u32_strpbrk (const uint32_t *str, const uint32_t *accept)
- _UC_ATTRIBUTE_PURE;
-
-/* Find the first occurrence of NEEDLE in HAYSTACK. */
-/* Similar to strstr(), wcsstr(). */
-extern uint8_t *
- u8_strstr (const uint8_t *haystack, const uint8_t *needle)
- _UC_ATTRIBUTE_PURE;
-extern uint16_t *
- u16_strstr (const uint16_t *haystack, const uint16_t *needle)
- _UC_ATTRIBUTE_PURE;
-extern uint32_t *
- u32_strstr (const uint32_t *haystack, const uint32_t *needle)
- _UC_ATTRIBUTE_PURE;
-
-/* Test whether STR starts with PREFIX. */
-extern bool
- u8_startswith (const uint8_t *str, const uint8_t *prefix)
- _UC_ATTRIBUTE_PURE;
-extern bool
- u16_startswith (const uint16_t *str, const uint16_t *prefix)
- _UC_ATTRIBUTE_PURE;
-extern bool
- u32_startswith (const uint32_t *str, const uint32_t *prefix)
- _UC_ATTRIBUTE_PURE;
-
-/* Test whether STR ends with SUFFIX. */
-extern bool
- u8_endswith (const uint8_t *str, const uint8_t *suffix)
- _UC_ATTRIBUTE_PURE;
-extern bool
- u16_endswith (const uint16_t *str, const uint16_t *suffix)
- _UC_ATTRIBUTE_PURE;
-extern bool
- u32_endswith (const uint32_t *str, const uint32_t *suffix)
- _UC_ATTRIBUTE_PURE;
-
-/* Divide STR into tokens separated by characters in DELIM.
- This interface is actually more similar to wcstok than to strtok. */
-/* Similar to strtok_r(), wcstok(). */
-extern uint8_t *
- u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr);
-extern uint16_t *
- u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr);
-extern uint32_t *
- u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _UNISTR_H */
diff --git a/lib/unistr/u8-mbtouc-aux.c b/lib/unistr/u8-mbtouc-aux.c
deleted file mode 100644
index d546ae7af..000000000
--- a/lib/unistr/u8-mbtouc-aux.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Conversion UTF-8 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2001.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Specification. */
-#include "unistr.h"
-
-#if defined IN_LIBUNISTRING || HAVE_INLINE
-
-int
-u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
-{
- uint8_t c = *s;
-
- if (c >= 0xc2)
- {
- if (c < 0xe0)
- {
- if (n >= 2)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- *puc = ((unsigned int) (c & 0x1f) << 6)
- | (unsigned int) (s[1] ^ 0x80);
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return 1;
- }
- }
- else if (c < 0xf0)
- {
- if (n >= 3)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((c >= 0xe1 || s[1] >= 0xa0)
- && (c != 0xed || s[1] < 0xa0))
- {
- *puc = ((unsigned int) (c & 0x0f) << 12)
- | ((unsigned int) (s[1] ^ 0x80) << 6)
- | (unsigned int) (s[2] ^ 0x80);
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else
- return 2;
- }
- }
- else if (c < 0xf8)
- {
- if (n >= 4)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((c >= 0xf1 || s[1] >= 0x90)
-#if 1
- && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
-#endif
- )
- {
- *puc = ((unsigned int) (c & 0x07) << 18)
- | ((unsigned int) (s[1] ^ 0x80) << 12)
- | ((unsigned int) (s[2] ^ 0x80) << 6)
- | (unsigned int) (s[3] ^ 0x80);
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
- return 2;
- else
- return 3;
- }
- }
-#if 0
- else if (c < 0xfc)
- {
- if (n >= 5)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if (c >= 0xf9 || s[1] >= 0x88)
- {
- *puc = ((unsigned int) (c & 0x03) << 24)
- | ((unsigned int) (s[1] ^ 0x80) << 18)
- | ((unsigned int) (s[2] ^ 0x80) << 12)
- | ((unsigned int) (s[3] ^ 0x80) << 6)
- | (unsigned int) (s[4] ^ 0x80);
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
- else if (c < 0xfe)
- {
- if (n >= 6)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if ((s[5] ^ 0x80) < 0x40)
- {
- if (c >= 0xfd || s[1] >= 0x84)
- {
- *puc = ((unsigned int) (c & 0x01) << 30)
- | ((unsigned int) (s[1] ^ 0x80) << 24)
- | ((unsigned int) (s[2] ^ 0x80) << 18)
- | ((unsigned int) (s[3] ^ 0x80) << 12)
- | ((unsigned int) (s[4] ^ 0x80) << 6)
- | (unsigned int) (s[5] ^ 0x80);
- return 6;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 6;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
-#endif
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 1;
-}
-
-#endif
diff --git a/lib/unistr/u8-mbtouc-unsafe-aux.c b/lib/unistr/u8-mbtouc-unsafe-aux.c
deleted file mode 100644
index 61783e4ba..000000000
--- a/lib/unistr/u8-mbtouc-unsafe-aux.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/* Conversion UTF-8 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2001.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Specification. */
-#include "unistr.h"
-
-#if defined IN_LIBUNISTRING || HAVE_INLINE
-
-int
-u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
-{
- uint8_t c = *s;
-
- if (c >= 0xc2)
- {
- if (c < 0xe0)
- {
- if (n >= 2)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
-#endif
- {
- *puc = ((unsigned int) (c & 0x1f) << 6)
- | (unsigned int) (s[1] ^ 0x80);
- return 2;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return 1;
- }
- }
- else if (c < 0xf0)
- {
- if (n >= 3)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((c >= 0xe1 || s[1] >= 0xa0)
- && (c != 0xed || s[1] < 0xa0))
-#endif
- {
- *puc = ((unsigned int) (c & 0x0f) << 12)
- | ((unsigned int) (s[1] ^ 0x80) << 6)
- | (unsigned int) (s[2] ^ 0x80);
- return 3;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else
- return 2;
- }
- }
- else if (c < 0xf8)
- {
- if (n >= 4)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((c >= 0xf1 || s[1] >= 0x90)
-#if 1
- && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
-#endif
- )
-#endif
- {
- *puc = ((unsigned int) (c & 0x07) << 18)
- | ((unsigned int) (s[1] ^ 0x80) << 12)
- | ((unsigned int) (s[2] ^ 0x80) << 6)
- | (unsigned int) (s[3] ^ 0x80);
- return 4;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
- return 2;
- else
- return 3;
- }
- }
-#if 0
- else if (c < 0xfc)
- {
- if (n >= 5)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if (c >= 0xf9 || s[1] >= 0x88)
-#endif
- {
- *puc = ((unsigned int) (c & 0x03) << 24)
- | ((unsigned int) (s[1] ^ 0x80) << 18)
- | ((unsigned int) (s[2] ^ 0x80) << 12)
- | ((unsigned int) (s[3] ^ 0x80) << 6)
- | (unsigned int) (s[4] ^ 0x80);
- return 5;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
- else if (c < 0xfe)
- {
- if (n >= 6)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if ((s[5] ^ 0x80) < 0x40)
- {
- if (c >= 0xfd || s[1] >= 0x84)
-#endif
- {
- *puc = ((unsigned int) (c & 0x01) << 30)
- | ((unsigned int) (s[1] ^ 0x80) << 24)
- | ((unsigned int) (s[2] ^ 0x80) << 18)
- | ((unsigned int) (s[3] ^ 0x80) << 12)
- | ((unsigned int) (s[4] ^ 0x80) << 6)
- | (unsigned int) (s[5] ^ 0x80);
- return 6;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 6;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
-#endif
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 1;
-}
-
-#endif
diff --git a/lib/unistr/u8-mbtouc-unsafe.c b/lib/unistr/u8-mbtouc-unsafe.c
deleted file mode 100644
index b73e99a1b..000000000
--- a/lib/unistr/u8-mbtouc-unsafe.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2001.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-#if defined IN_LIBUNISTRING
-/* Tell unistr.h to declare u8_mbtouc_unsafe as 'extern', not
- 'static inline'. */
-# include "unistring-notinline.h"
-#endif
-
-/* Specification. */
-#include "unistr.h"
-
-#if !HAVE_INLINE
-
-int
-u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
-{
- uint8_t c = *s;
-
- if (c < 0x80)
- {
- *puc = c;
- return 1;
- }
- else if (c >= 0xc2)
- {
- if (c < 0xe0)
- {
- if (n >= 2)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
-#endif
- {
- *puc = ((unsigned int) (c & 0x1f) << 6)
- | (unsigned int) (s[1] ^ 0x80);
- return 2;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return 1;
- }
- }
- else if (c < 0xf0)
- {
- if (n >= 3)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((c >= 0xe1 || s[1] >= 0xa0)
- && (c != 0xed || s[1] < 0xa0))
-#endif
- {
- *puc = ((unsigned int) (c & 0x0f) << 12)
- | ((unsigned int) (s[1] ^ 0x80) << 6)
- | (unsigned int) (s[2] ^ 0x80);
- return 3;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else
- return 2;
- }
- }
- else if (c < 0xf8)
- {
- if (n >= 4)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((c >= 0xf1 || s[1] >= 0x90)
-#if 1
- && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
-#endif
- )
-#endif
- {
- *puc = ((unsigned int) (c & 0x07) << 18)
- | ((unsigned int) (s[1] ^ 0x80) << 12)
- | ((unsigned int) (s[2] ^ 0x80) << 6)
- | (unsigned int) (s[3] ^ 0x80);
- return 4;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
- return 2;
- else
- return 3;
- }
- }
-#if 0
- else if (c < 0xfc)
- {
- if (n >= 5)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if (c >= 0xf9 || s[1] >= 0x88)
-#endif
- {
- *puc = ((unsigned int) (c & 0x03) << 24)
- | ((unsigned int) (s[1] ^ 0x80) << 18)
- | ((unsigned int) (s[2] ^ 0x80) << 12)
- | ((unsigned int) (s[3] ^ 0x80) << 6)
- | (unsigned int) (s[4] ^ 0x80);
- return 5;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
- else if (c < 0xfe)
- {
- if (n >= 6)
- {
-#if CONFIG_UNICODE_SAFETY
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if ((s[5] ^ 0x80) < 0x40)
- {
- if (c >= 0xfd || s[1] >= 0x84)
-#endif
- {
- *puc = ((unsigned int) (c & 0x01) << 30)
- | ((unsigned int) (s[1] ^ 0x80) << 24)
- | ((unsigned int) (s[2] ^ 0x80) << 18)
- | ((unsigned int) (s[3] ^ 0x80) << 12)
- | ((unsigned int) (s[4] ^ 0x80) << 6)
- | (unsigned int) (s[5] ^ 0x80);
- return 6;
- }
-#if CONFIG_UNICODE_SAFETY
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 6;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
-#endif
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
-#endif
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 1;
-}
-
-#endif
diff --git a/lib/unistr/u8-mbtouc.c b/lib/unistr/u8-mbtouc.c
deleted file mode 100644
index bfb0e4df8..000000000
--- a/lib/unistr/u8-mbtouc.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2001.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-#if defined IN_LIBUNISTRING
-/* Tell unistr.h to declare u8_mbtouc as 'extern', not 'static inline'. */
-# include "unistring-notinline.h"
-#endif
-
-/* Specification. */
-#include "unistr.h"
-
-#if !HAVE_INLINE
-
-int
-u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
-{
- uint8_t c = *s;
-
- if (c < 0x80)
- {
- *puc = c;
- return 1;
- }
- else if (c >= 0xc2)
- {
- if (c < 0xe0)
- {
- if (n >= 2)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- *puc = ((unsigned int) (c & 0x1f) << 6)
- | (unsigned int) (s[1] ^ 0x80);
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return 1;
- }
- }
- else if (c < 0xf0)
- {
- if (n >= 3)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((c >= 0xe1 || s[1] >= 0xa0)
- && (c != 0xed || s[1] < 0xa0))
- {
- *puc = ((unsigned int) (c & 0x0f) << 12)
- | ((unsigned int) (s[1] ^ 0x80) << 6)
- | (unsigned int) (s[2] ^ 0x80);
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else
- return 2;
- }
- }
- else if (c < 0xf8)
- {
- if (n >= 4)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((c >= 0xf1 || s[1] >= 0x90)
-#if 1
- && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
-#endif
- )
- {
- *puc = ((unsigned int) (c & 0x07) << 18)
- | ((unsigned int) (s[1] ^ 0x80) << 12)
- | ((unsigned int) (s[2] ^ 0x80) << 6)
- | (unsigned int) (s[3] ^ 0x80);
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- if (n == 1 || (s[1] ^ 0x80) >= 0x40)
- return 1;
- else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
- return 2;
- else
- return 3;
- }
- }
-#if 0
- else if (c < 0xfc)
- {
- if (n >= 5)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if (c >= 0xf9 || s[1] >= 0x88)
- {
- *puc = ((unsigned int) (c & 0x03) << 24)
- | ((unsigned int) (s[1] ^ 0x80) << 18)
- | ((unsigned int) (s[2] ^ 0x80) << 12)
- | ((unsigned int) (s[3] ^ 0x80) << 6)
- | (unsigned int) (s[4] ^ 0x80);
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
- else if (c < 0xfe)
- {
- if (n >= 6)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if ((s[5] ^ 0x80) < 0x40)
- {
- if (c >= 0xfd || s[1] >= 0x84)
- {
- *puc = ((unsigned int) (c & 0x01) << 30)
- | ((unsigned int) (s[1] ^ 0x80) << 24)
- | ((unsigned int) (s[2] ^ 0x80) << 18)
- | ((unsigned int) (s[3] ^ 0x80) << 12)
- | ((unsigned int) (s[4] ^ 0x80) << 6)
- | (unsigned int) (s[5] ^ 0x80);
- return 6;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 6;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 5;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 4;
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 3;
- }
- /* invalid multibyte character */
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return n;
- }
- }
-#endif
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return 1;
-}
-
-#endif
diff --git a/lib/unistr/u8-mbtoucr.c b/lib/unistr/u8-mbtoucr.c
deleted file mode 100644
index 5fd45b57e..000000000
--- a/lib/unistr/u8-mbtoucr.c
+++ /dev/null
@@ -1,285 +0,0 @@
-/* Look at first character in UTF-8 string, returning an error code.
- Copyright (C) 1999-2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2001.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Specification. */
-#include "unistr.h"
-
-int
-u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n)
-{
- uint8_t c = *s;
-
- if (c < 0x80)
- {
- *puc = c;
- return 1;
- }
- else if (c >= 0xc2)
- {
- if (c < 0xe0)
- {
- if (n >= 2)
- {
- if ((s[1] ^ 0x80) < 0x40)
- {
- *puc = ((unsigned int) (c & 0x1f) << 6)
- | (unsigned int) (s[1] ^ 0x80);
- return 2;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- else if (c < 0xf0)
- {
- if (n >= 2)
- {
- if ((s[1] ^ 0x80) < 0x40
- && (c >= 0xe1 || s[1] >= 0xa0)
- && (c != 0xed || s[1] < 0xa0))
- {
- if (n >= 3)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- *puc = ((unsigned int) (c & 0x0f) << 12)
- | ((unsigned int) (s[1] ^ 0x80) << 6)
- | (unsigned int) (s[2] ^ 0x80);
- return 3;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- else if (c < 0xf8)
- {
- if (n >= 2)
- {
- if ((s[1] ^ 0x80) < 0x40
- && (c >= 0xf1 || s[1] >= 0x90)
-#if 1
- && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
-#endif
- )
- {
- if (n >= 3)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if (n >= 4)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- *puc = ((unsigned int) (c & 0x07) << 18)
- | ((unsigned int) (s[1] ^ 0x80) << 12)
- | ((unsigned int) (s[2] ^ 0x80) << 6)
- | (unsigned int) (s[3] ^ 0x80);
- return 4;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
-#if 0
- else if (c < 0xfc)
- {
- if (n >= 2)
- {
- if ((s[1] ^ 0x80) < 0x40
- && (c >= 0xf9 || s[1] >= 0x88))
- {
- if (n >= 3)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if (n >= 4)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if (n >= 5)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- *puc = ((unsigned int) (c & 0x03) << 24)
- | ((unsigned int) (s[1] ^ 0x80) << 18)
- | ((unsigned int) (s[2] ^ 0x80) << 12)
- | ((unsigned int) (s[3] ^ 0x80) << 6)
- | (unsigned int) (s[4] ^ 0x80);
- return 5;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- else if (c < 0xfe)
- {
- if (n >= 2)
- {
- if ((s[1] ^ 0x80) < 0x40
- && (c >= 0xfd || s[1] >= 0x84))
- {
- if (n >= 3)
- {
- if ((s[2] ^ 0x80) < 0x40)
- {
- if (n >= 4)
- {
- if ((s[3] ^ 0x80) < 0x40)
- {
- if (n >= 5)
- {
- if ((s[4] ^ 0x80) < 0x40)
- {
- if (n >= 6)
- {
- if ((s[5] ^ 0x80) < 0x40)
- {
- *puc = ((unsigned int) (c & 0x01) << 30)
- | ((unsigned int) (s[1] ^ 0x80) << 24)
- | ((unsigned int) (s[2] ^ 0x80) << 18)
- | ((unsigned int) (s[3] ^ 0x80) << 12)
- | ((unsigned int) (s[4] ^ 0x80) << 6)
- | (unsigned int) (s[5] ^ 0x80);
- return 6;
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
- /* invalid multibyte character */
- }
- else
- {
- /* incomplete multibyte character */
- *puc = 0xfffd;
- return -2;
- }
- }
-#endif
- }
- /* invalid multibyte character */
- *puc = 0xfffd;
- return -1;
-}
diff --git a/lib/unistr/u8-prev.c b/lib/unistr/u8-prev.c
deleted file mode 100644
index b609acf73..000000000
--- a/lib/unistr/u8-prev.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Iterate over previous character in UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2002.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Specification. */
-#include "unistr.h"
-
-const uint8_t *
-u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start)
-{
- /* Keep in sync with unistr.h and u8-mbtouc-aux.c. */
- if (s != start)
- {
- uint8_t c_1 = s[-1];
-
- if (c_1 < 0x80)
- {
- *puc = c_1;
- return s - 1;
- }
-#if CONFIG_UNICODE_SAFETY
- if ((c_1 ^ 0x80) < 0x40)
-#endif
- if (s - 1 != start)
- {
- uint8_t c_2 = s[-2];
-
- if (c_2 >= 0xc2 && c_2 < 0xe0)
- {
- *puc = ((unsigned int) (c_2 & 0x1f) << 6)
- | (unsigned int) (c_1 ^ 0x80);
- return s - 2;
- }
-#if CONFIG_UNICODE_SAFETY
- if ((c_2 ^ 0x80) < 0x40)
-#endif
- if (s - 2 != start)
- {
- uint8_t c_3 = s[-3];
-
- if (c_3 >= 0xe0 && c_3 < 0xf0
-#if CONFIG_UNICODE_SAFETY
- && (c_3 >= 0xe1 || c_2 >= 0xa0)
- && (c_3 != 0xed || c_2 < 0xa0)
-#endif
- )
- {
- *puc = ((unsigned int) (c_3 & 0x0f) << 12)
- | ((unsigned int) (c_2 ^ 0x80) << 6)
- | (unsigned int) (c_1 ^ 0x80);
- return s - 3;
- }
-#if CONFIG_UNICODE_SAFETY
- if ((c_3 ^ 0x80) < 0x40)
-#endif
- if (s - 3 != start)
- {
- uint8_t c_4 = s[-4];
-
- if (c_4 >= 0xf0 && c_4 < 0xf8
-#if CONFIG_UNICODE_SAFETY
- && (c_4 >= 0xf1 || c_3 >= 0x90)
- && (c_4 < 0xf4 || (c_4 == 0xf4 && c_3 < 0x90))
-#endif
- )
- {
- *puc = ((unsigned int) (c_4 & 0x07) << 18)
- | ((unsigned int) (c_3 ^ 0x80) << 12)
- | ((unsigned int) (c_2 ^ 0x80) << 6)
- | (unsigned int) (c_1 ^ 0x80);
- return s - 4;
- }
- }
- }
- }
- }
- return NULL;
-}
diff --git a/lib/unistr/u8-uctomb-aux.c b/lib/unistr/u8-uctomb-aux.c
deleted file mode 100644
index 48adae10e..000000000
--- a/lib/unistr/u8-uctomb-aux.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Conversion UCS-4 to UTF-8.
- Copyright (C) 2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2002.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Specification. */
-#include "unistr.h"
-
-int
-u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n)
-{
- int count;
-
- if (uc < 0x80)
- /* The case n >= 1 is already handled by the caller. */
- return -2;
- else if (uc < 0x800)
- count = 2;
- else if (uc < 0x10000)
- {
- if (uc < 0xd800 || uc >= 0xe000)
- count = 3;
- else
- return -1;
- }
-#if 0
- else if (uc < 0x200000)
- count = 4;
- else if (uc < 0x4000000)
- count = 5;
- else if (uc <= 0x7fffffff)
- count = 6;
-#else
- else if (uc < 0x110000)
- count = 4;
-#endif
- else
- return -1;
-
- if (n < count)
- return -2;
-
- switch (count) /* note: code falls through cases! */
- {
-#if 0
- case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000;
- case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000;
-#endif
- case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000;
- case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800;
- case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0;
- /*case 1:*/ s[0] = uc;
- }
- return count;
-}
diff --git a/lib/unistr/u8-uctomb.c b/lib/unistr/u8-uctomb.c
deleted file mode 100644
index d62ad0fa1..000000000
--- a/lib/unistr/u8-uctomb.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Store a character in UTF-8 string.
- Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2002.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-#if defined IN_LIBUNISTRING
-/* Tell unistr.h to declare u8_uctomb as 'extern', not 'static inline'. */
-# include "unistring-notinline.h"
-#endif
-
-/* Specification. */
-#include "unistr.h"
-
-#if !HAVE_INLINE
-
-int
-u8_uctomb (uint8_t *s, ucs4_t uc, int n)
-{
- if (uc < 0x80)
- {
- if (n > 0)
- {
- s[0] = uc;
- return 1;
- }
- /* else return -2, below. */
- }
- else
- {
- int count;
-
- if (uc < 0x800)
- count = 2;
- else if (uc < 0x10000)
- {
- if (uc < 0xd800 || uc >= 0xe000)
- count = 3;
- else
- return -1;
- }
-#if 0
- else if (uc < 0x200000)
- count = 4;
- else if (uc < 0x4000000)
- count = 5;
- else if (uc <= 0x7fffffff)
- count = 6;
-#else
- else if (uc < 0x110000)
- count = 4;
-#endif
- else
- return -1;
-
- if (n >= count)
- {
- switch (count) /* note: code falls through cases! */
- {
-#if 0
- case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000;
- case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000;
-#endif
- case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000;
- case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800;
- case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0;
- /*case 1:*/ s[0] = uc;
- }
- return count;
- }
- }
- return -2;
-}
-
-#endif
diff --git a/lib/unitypes.in.h b/lib/unitypes.in.h
deleted file mode 100644
index 4a1e65ede..000000000
--- a/lib/unitypes.in.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Elementary types and macros for the GNU UniString library.
- Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc.
-
- This program 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- 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 <http://www.gnu.org/licenses/>. */
-
-#ifndef _UNITYPES_H
-#define _UNITYPES_H
-
-/* Get uint8_t, uint16_t, uint32_t. */
-#include <stdint.h>
-
-/* Type representing a Unicode character. */
-typedef uint32_t ucs4_t;
-
-/* Attribute of a function whose result depends only on the arguments
- (not pointers!) and which has no side effects. */
-#ifndef _UC_ATTRIBUTE_CONST
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__))
-# else
-# define _UC_ATTRIBUTE_CONST
-# endif
-#endif
-
-/* Attribute of a function whose result depends only on the arguments
- (possibly pointers) and global memory, and which has no side effects. */
-#ifndef _UC_ATTRIBUTE_PURE
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
-# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-# define _UC_ATTRIBUTE_PURE
-# endif
-#endif
-
-#endif /* _UNITYPES_H */