summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2024-03-24 08:54:48 +0100
committerJörg Frings-Fürst <debian@jff.email>2024-03-24 08:54:48 +0100
commit163a663518f33bab48b28431972e580b366b4d49 (patch)
treef518ffabaca4a0b93f0103d617e803792d3b0b43 /doc
parent1b3a8d5ad2ea2f099d514d9dd51ebf926a628076 (diff)
parentdd0000f7e25abe6c28d4329d324fd7fcab54094f (diff)
Merge branch 'release/debian/1.2-1'HEADdebian/1.2-1master
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.am8
-rw-r--r--doc/Makefile.in300
-rw-r--r--doc/libunistring.info691
-rw-r--r--doc/libunistring.texi51
-rw-r--r--doc/libunistring_1.html14
-rw-r--r--doc/libunistring_10.html105
-rw-r--r--doc/libunistring_11.html82
-rw-r--r--doc/libunistring_12.html50
-rw-r--r--doc/libunistring_13.html136
-rw-r--r--doc/libunistring_14.html199
-rw-r--r--doc/libunistring_15.html20
-rw-r--r--doc/libunistring_16.html74
-rw-r--r--doc/libunistring_17.html22
-rw-r--r--doc/libunistring_18.html27
-rw-r--r--doc/libunistring_19.html20
-rw-r--r--doc/libunistring_2.html31
-rw-r--r--doc/libunistring_20.html50
-rw-r--r--doc/libunistring_21.html786
-rw-r--r--doc/libunistring_22.html648
-rw-r--r--doc/libunistring_23.html190
-rw-r--r--doc/libunistring_3.html8
-rw-r--r--doc/libunistring_4.html224
-rw-r--r--doc/libunistring_5.html60
-rw-r--r--doc/libunistring_6.html126
-rw-r--r--doc/libunistring_7.html16
-rw-r--r--doc/libunistring_8.html1173
-rw-r--r--doc/libunistring_9.html38
-rw-r--r--doc/libunistring_abt.html10
-rw-r--r--doc/libunistring_fot.html72
-rw-r--r--doc/libunistring_toc.html90
-rw-r--r--doc/stamp-vti8
-rw-r--r--doc/unicase.texi7
-rw-r--r--doc/unictype.texi63
-rw-r--r--doc/unigbrk.texi15
-rw-r--r--doc/unistdio.texi2
-rw-r--r--doc/unistr.texi11
-rw-r--r--doc/version.texi8
-rw-r--r--doc/wchar_t.texi7
38 files changed, 3207 insertions, 2235 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 3f33218e..fcaa5b08 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,5 +1,5 @@
## Makefile for the doc subdirectory of GNU libunistring.
-## Copyright (C) 2009, 2011, 2014, 2017-2019 Free Software Foundation, Inc.
+## Copyright (C) 2009, 2011, 2014, 2017-2023 Free Software Foundation, Inc.
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -28,7 +28,11 @@ TEXINCLUDES = -I .
RM = rm -f
-MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
+# The customization variable CHECK_NORMAL_MENU_STRUCTURE is necessary with
+# makeinfo versions ≥ 6.8.
+MAKEINFO = \
+ env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= \
+ @MAKEINFO@ -c CHECK_NORMAL_MENU_STRUCTURE=1
MAKEINFOFLAGS = $(TEXINCLUDES) --no-split
info_TEXINFOS = libunistring.texi
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 56f6b5f5..98310b8c 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -90,6 +90,7 @@ host_triplet = @host@
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+ $(top_srcdir)/gnulib-m4/__inline.m4 \
$(top_srcdir)/gnulib-m4/absolute-header.m4 \
$(top_srcdir)/gnulib-m4/alloca.m4 \
$(top_srcdir)/gnulib-m4/arpa_inet_h.m4 \
@@ -97,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/btowc.m4 \
$(top_srcdir)/gnulib-m4/builtin-expect.m4 \
$(top_srcdir)/gnulib-m4/c-bool.m4 \
+ $(top_srcdir)/gnulib-m4/c32rtomb.m4 \
$(top_srcdir)/gnulib-m4/calloc.m4 \
$(top_srcdir)/gnulib-m4/close.m4 \
$(top_srcdir)/gnulib-m4/codeset.m4 \
@@ -107,6 +109,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/environ.m4 \
$(top_srcdir)/gnulib-m4/errno_h.m4 \
$(top_srcdir)/gnulib-m4/error.m4 \
+ $(top_srcdir)/gnulib-m4/error_h.m4 \
$(top_srcdir)/gnulib-m4/exponentd.m4 \
$(top_srcdir)/gnulib-m4/exponentf.m4 \
$(top_srcdir)/gnulib-m4/exponentl.m4 \
@@ -151,6 +154,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/isnanl.m4 \
$(top_srcdir)/gnulib-m4/iswblank.m4 \
$(top_srcdir)/gnulib-m4/iswdigit.m4 \
+ $(top_srcdir)/gnulib-m4/iswpunct.m4 \
$(top_srcdir)/gnulib-m4/iswxdigit.m4 \
$(top_srcdir)/gnulib-m4/langinfo_h.m4 \
$(top_srcdir)/gnulib-m4/largefile.m4 \
@@ -176,6 +180,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/math_h.m4 \
$(top_srcdir)/gnulib-m4/mbchar.m4 \
$(top_srcdir)/gnulib-m4/mbiter.m4 \
+ $(top_srcdir)/gnulib-m4/mbrtoc32.m4 \
$(top_srcdir)/gnulib-m4/mbrtowc.m4 \
$(top_srcdir)/gnulib-m4/mbsinit.m4 \
$(top_srcdir)/gnulib-m4/mbstate_t.m4 \
@@ -188,6 +193,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
$(top_srcdir)/gnulib-m4/multiarch.m4 \
$(top_srcdir)/gnulib-m4/musl.m4 \
+ $(top_srcdir)/gnulib-m4/nan-mips.m4 \
$(top_srcdir)/gnulib-m4/nanosleep.m4 \
$(top_srcdir)/gnulib-m4/netinet_in_h.m4 \
$(top_srcdir)/gnulib-m4/nocrash.m4 \
@@ -208,6 +214,8 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/pthread_sigmask.m4 \
$(top_srcdir)/gnulib-m4/putenv.m4 \
$(top_srcdir)/gnulib-m4/raise.m4 \
+ $(top_srcdir)/gnulib-m4/random.m4 \
+ $(top_srcdir)/gnulib-m4/random_r.m4 \
$(top_srcdir)/gnulib-m4/realloc.m4 \
$(top_srcdir)/gnulib-m4/reallocarray.m4 \
$(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
@@ -223,6 +231,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/signbit.m4 \
$(top_srcdir)/gnulib-m4/size_max.m4 \
$(top_srcdir)/gnulib-m4/sleep.m4 \
+ $(top_srcdir)/gnulib-m4/snan.m4 \
$(top_srcdir)/gnulib-m4/socketlib.m4 \
$(top_srcdir)/gnulib-m4/sockets.m4 \
$(top_srcdir)/gnulib-m4/socklen.m4 \
@@ -251,7 +260,13 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/sys_uio_h.m4 \
$(top_srcdir)/gnulib-m4/thread.m4 \
$(top_srcdir)/gnulib-m4/threadlib.m4 \
+ $(top_srcdir)/gnulib-m4/time.m4 \
$(top_srcdir)/gnulib-m4/time_h.m4 \
+ $(top_srcdir)/gnulib-m4/uchar_h.m4 \
+ $(top_srcdir)/gnulib-m4/unicase_h.m4 \
+ $(top_srcdir)/gnulib-m4/unictype_h.m4 \
+ $(top_srcdir)/gnulib-m4/unimetadata_h.m4 \
+ $(top_srcdir)/gnulib-m4/uninorm_h.m4 \
$(top_srcdir)/gnulib-m4/unistd_h.m4 \
$(top_srcdir)/gnulib-m4/usleep.m4 \
$(top_srcdir)/gnulib-m4/vasnprintf.m4 \
@@ -267,7 +282,6 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/wint_t.m4 \
$(top_srcdir)/gnulib-m4/xalloc.m4 \
$(top_srcdir)/gnulib-m4/xsize.m4 \
- $(top_srcdir)/gnulib-m4/year2038.m4 \
$(top_srcdir)/gnulib-m4/yield.m4 \
$(top_srcdir)/gnulib-m4/zzgnulib.m4 \
$(top_srcdir)/m4/exported.m4 \
@@ -401,6 +415,8 @@ CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
+CXX_HAS_CHAR8_TYPE = @CXX_HAS_CHAR8_TYPE@
+CXX_HAS_UCHAR_TYPES = @CXX_HAS_UCHAR_TYPES@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -447,7 +463,33 @@ GL_GNULIB_ATANF = @GL_GNULIB_ATANF@
GL_GNULIB_ATANL = @GL_GNULIB_ATANL@
GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
GL_GNULIB_BIND = @GL_GNULIB_BIND@
+GL_GNULIB_BTOC32 = @GL_GNULIB_BTOC32@
GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_C32ISALNUM = @GL_GNULIB_C32ISALNUM@
+GL_GNULIB_C32ISALPHA = @GL_GNULIB_C32ISALPHA@
+GL_GNULIB_C32ISBLANK = @GL_GNULIB_C32ISBLANK@
+GL_GNULIB_C32ISCNTRL = @GL_GNULIB_C32ISCNTRL@
+GL_GNULIB_C32ISDIGIT = @GL_GNULIB_C32ISDIGIT@
+GL_GNULIB_C32ISGRAPH = @GL_GNULIB_C32ISGRAPH@
+GL_GNULIB_C32ISLOWER = @GL_GNULIB_C32ISLOWER@
+GL_GNULIB_C32ISPRINT = @GL_GNULIB_C32ISPRINT@
+GL_GNULIB_C32ISPUNCT = @GL_GNULIB_C32ISPUNCT@
+GL_GNULIB_C32ISSPACE = @GL_GNULIB_C32ISSPACE@
+GL_GNULIB_C32ISUPPER = @GL_GNULIB_C32ISUPPER@
+GL_GNULIB_C32ISXDIGIT = @GL_GNULIB_C32ISXDIGIT@
+GL_GNULIB_C32RTOMB = @GL_GNULIB_C32RTOMB@
+GL_GNULIB_C32SNRTOMBS = @GL_GNULIB_C32SNRTOMBS@
+GL_GNULIB_C32SRTOMBS = @GL_GNULIB_C32SRTOMBS@
+GL_GNULIB_C32STOMBS = @GL_GNULIB_C32STOMBS@
+GL_GNULIB_C32SWIDTH = @GL_GNULIB_C32SWIDTH@
+GL_GNULIB_C32TOB = @GL_GNULIB_C32TOB@
+GL_GNULIB_C32TOLOWER = @GL_GNULIB_C32TOLOWER@
+GL_GNULIB_C32TOUPPER = @GL_GNULIB_C32TOUPPER@
+GL_GNULIB_C32WIDTH = @GL_GNULIB_C32WIDTH@
+GL_GNULIB_C32_APPLY_MAPPING = @GL_GNULIB_C32_APPLY_MAPPING@
+GL_GNULIB_C32_APPLY_TYPE_TEST = @GL_GNULIB_C32_APPLY_TYPE_TEST@
+GL_GNULIB_C32_GET_MAPPING = @GL_GNULIB_C32_GET_MAPPING@
+GL_GNULIB_C32_GET_TYPE_TEST = @GL_GNULIB_C32_GET_TYPE_TEST@
GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
@@ -560,6 +602,7 @@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@
@@ -591,16 +634,18 @@ GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@
GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@
GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@
GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@
+GL_GNULIB_ISWPUNCT = @GL_GNULIB_ISWPUNCT@
GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@
GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@
GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@
+GL_GNULIB_LDEXP = @GL_GNULIB_LDEXP@
GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@
GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@
GL_GNULIB_LINK = @GL_GNULIB_LINK@
GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@
GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@
GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@
-GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
+GL_GNULIB_LOCALENAME_UNSAFE = @GL_GNULIB_LOCALENAME_UNSAFE@
GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
GL_GNULIB_LOG = @GL_GNULIB_LOG@
GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@
@@ -622,6 +667,8 @@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
+GL_GNULIB_MBRTOC16 = @GL_GNULIB_MBRTOC16@
+GL_GNULIB_MBRTOC32 = @GL_GNULIB_MBRTOC32@
GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@
GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@
@@ -631,15 +678,20 @@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@
GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@
GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@
GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@
+GL_GNULIB_MBSNRTOC32S = @GL_GNULIB_MBSNRTOC32S@
GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@
GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@
GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@
GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@
+GL_GNULIB_MBSRTOC32S = @GL_GNULIB_MBSRTOC32S@
GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@
GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
+GL_GNULIB_MBSTOC32S = @GL_GNULIB_MBSTOC32S@
GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
+GL_GNULIB_MBSZERO = @GL_GNULIB_MBSZERO@
GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -692,6 +744,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -745,6 +798,7 @@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@
GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@
GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@
GL_GNULIB_RAISE = @GL_GNULIB_RAISE@
+GL_GNULIB_RAND = @GL_GNULIB_RAND@
GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@
GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@
GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@
@@ -819,6 +873,7 @@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@
GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@
GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@
GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@
+GL_GNULIB_STRTOF = @GL_GNULIB_STRTOF@
GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@
GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@
GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@
@@ -834,12 +889,16 @@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
GL_GNULIB_TANF = @GL_GNULIB_TANF@
GL_GNULIB_TANHF = @GL_GNULIB_TANHF@
GL_GNULIB_TANL = @GL_GNULIB_TANL@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
+GL_GNULIB_TOTALORDER = @GL_GNULIB_TOTALORDER@
+GL_GNULIB_TOTALORDERF = @GL_GNULIB_TOTALORDERF@
+GL_GNULIB_TOTALORDERL = @GL_GNULIB_TOTALORDERL@
GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@
GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@
GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@
@@ -847,6 +906,148 @@ GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@
GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@
GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@
GL_GNULIB_TZSET = @GL_GNULIB_TZSET@
+GL_GNULIB_UNICASE_EMPTY_PREFIX_CONTEXT_DLL_VARIABLE = @GL_GNULIB_UNICASE_EMPTY_PREFIX_CONTEXT_DLL_VARIABLE@
+GL_GNULIB_UNICASE_EMPTY_SUFFIX_CONTEXT_DLL_VARIABLE = @GL_GNULIB_UNICASE_EMPTY_SUFFIX_CONTEXT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_CC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_CC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_CF_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_CF_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_CN_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_CN_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_CO_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_CO_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_CS_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_CS_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_C_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_C_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_LC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_LC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_LL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_LL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_LM_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_LM_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_LO_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_LO_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_LT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_LT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_LU_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_LU_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_L_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_L_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_MC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_MC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_ME_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_ME_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_MN_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_MN_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_M_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_M_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_ND_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_ND_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_NL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_NL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_NO_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_NO_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_N_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_N_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_PC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_PC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_PD_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_PD_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_PE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_PE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_PF_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_PF_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_PI_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_PI_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_PO_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_PO_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_PS_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_PS_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_P_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_P_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_SC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_SC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_SK_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_SK_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_SM_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_SM_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_SO_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_SO_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_S_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_S_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_ZL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_ZL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_ZP_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_ZP_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_ZS_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_ZS_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_CATEGORY_Z_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_CATEGORY_Z_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ALPHABETIC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ALPHABETIC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_CONTROL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_CONTROL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_PDF_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_PDF_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_BIDI_WHITESPACE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_BIDI_WHITESPACE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CASED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CASED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CASE_IGNORABLE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CASE_IGNORABLE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_COMBINING_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_COMBINING_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_COMPOSITE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_COMPOSITE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_DASH_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_DASH_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_DECIMAL_DIGIT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_DECIMAL_DIGIT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_DEPRECATED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_DEPRECATED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_DIACRITIC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_DIACRITIC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_COMPONENT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_COMPONENT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_MODIFIER_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_MODIFIER_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_EXTENDER_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_EXTENDER_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_FORMAT_CONTROL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_FORMAT_CONTROL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_GRAPHEME_BASE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_GRAPHEME_BASE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_GRAPHEME_LINK_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_GRAPHEME_LINK_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_HEX_DIGIT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_HEX_DIGIT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_HYPHEN_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_HYPHEN_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_IDEOGRAPHIC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_IDEOGRAPHIC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ID_CONTINUE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ID_CONTINUE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ID_START_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ID_START_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ISO_CONTROL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ISO_CONTROL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_JOIN_CONTROL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_JOIN_CONTROL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_LEFT_OF_PAIR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_LEFT_OF_PAIR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_LINE_SEPARATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_LINE_SEPARATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_LOWERCASE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_LOWERCASE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_MATH_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_MATH_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_NON_BREAK_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_NON_BREAK_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_NOT_A_CHARACTER_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_NOT_A_CHARACTER_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_NUMERIC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_NUMERIC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_ID_START_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_ID_START_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_LOWERCASE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_LOWERCASE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_MATH_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_MATH_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_OTHER_UPPERCASE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_OTHER_UPPERCASE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_PATTERN_SYNTAX_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_PATTERN_SYNTAX_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_PRIVATE_USE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_PRIVATE_USE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_PUNCTUATION_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_PUNCTUATION_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_QUOTATION_MARK_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_QUOTATION_MARK_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_RADICAL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_RADICAL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_SOFT_DOTTED_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_SOFT_DOTTED_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_SPACE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_SPACE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_TITLECASE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_TITLECASE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_UPPERCASE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_UPPERCASE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_VARIATION_SELECTOR_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_VARIATION_SELECTOR_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_WHITE_SPACE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_WHITE_SPACE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_XID_CONTINUE_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_XID_CONTINUE_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_XID_START_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_XID_START_DLL_VARIABLE@
+GL_GNULIB_UNICTYPE_PROPERTY_ZERO_WIDTH_DLL_VARIABLE = @GL_GNULIB_UNICTYPE_PROPERTY_ZERO_WIDTH_DLL_VARIABLE@
+GL_GNULIB_UNIMETADATA_UNICODE_VERSION_DLL_VARIABLE = @GL_GNULIB_UNIMETADATA_UNICODE_VERSION_DLL_VARIABLE@
+GL_GNULIB_UNINORM_NFC_DLL_VARIABLE = @GL_GNULIB_UNINORM_NFC_DLL_VARIABLE@
+GL_GNULIB_UNINORM_NFD_DLL_VARIABLE = @GL_GNULIB_UNINORM_NFD_DLL_VARIABLE@
+GL_GNULIB_UNINORM_NFKC_DLL_VARIABLE = @GL_GNULIB_UNINORM_NFKC_DLL_VARIABLE@
+GL_GNULIB_UNINORM_NFKD_DLL_VARIABLE = @GL_GNULIB_UNINORM_NFKD_DLL_VARIABLE@
GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@
GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@
GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@
@@ -898,6 +1099,7 @@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@
GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@
GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@
GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@
+GL_GNULIB_WGETCWD = @GL_GNULIB_WGETCWD@
GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@
GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@
GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@
@@ -906,9 +1108,12 @@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@
GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@
GL_GNULIB_WRITE = @GL_GNULIB_WRITE@
GL_GNULIB__EXIT = @GL_GNULIB__EXIT@
+GNULIBHEADERS_OVERRIDE_CHAR16_T = @GNULIBHEADERS_OVERRIDE_CHAR16_T@
+GNULIBHEADERS_OVERRIDE_CHAR32_T = @GNULIBHEADERS_OVERRIDE_CHAR32_T@
+GNULIBHEADERS_OVERRIDE_CHAR8_T = @GNULIBHEADERS_OVERRIDE_CHAR8_T@
GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
-GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
HAVE_ACCEPT4 = @HAVE_ACCEPT4@
HAVE_ACOSF = @HAVE_ACOSF@
HAVE_ACOSL = @HAVE_ACOSL@
@@ -922,6 +1127,7 @@ HAVE_ATANF = @HAVE_ATANF@
HAVE_ATANL = @HAVE_ATANL@
HAVE_ATOLL = @HAVE_ATOLL@
HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_C32RTOMB = @HAVE_C32RTOMB@
HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
HAVE_CBRT = @HAVE_CBRT@
@@ -971,6 +1177,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -987,6 +1194,8 @@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@
HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@
HAVE_DECL_RINTF = @HAVE_DECL_RINTF@
@@ -1021,6 +1230,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
HAVE_DPRINTF = @HAVE_DPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
HAVE_EXECVPE = @HAVE_EXECVPE@
HAVE_EXPF = @HAVE_EXPF@
@@ -1059,6 +1271,7 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GETUMASK = @HAVE_GETUMASK@
@@ -1070,6 +1283,8 @@ HAVE_HYPOTL = @HAVE_HYPOTL@
HAVE_ILOGB = @HAVE_ILOGB@
HAVE_ILOGBF = @HAVE_ILOGBF@
HAVE_ILOGBL = @HAVE_ILOGBL@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INITSTATE = @HAVE_INITSTATE@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -1102,6 +1317,8 @@ HAVE_LOGL = @HAVE_LOGL@
HAVE_LSTAT = @HAVE_LSTAT@
HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
HAVE_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOC16 = @HAVE_MBRTOC16@
+HAVE_MBRTOC32 = @HAVE_MBRTOC32@
HAVE_MBRTOWC = @HAVE_MBRTOWC@
HAVE_MBSINIT = @HAVE_MBSINIT@
HAVE_MBSLEN = @HAVE_MBSLEN@
@@ -1109,6 +1326,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
HAVE_MBTOWC = @HAVE_MBTOWC@
HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
HAVE_MKDIRAT = @HAVE_MKDIRAT@
HAVE_MKDTEMP = @HAVE_MKDTEMP@
HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -1249,6 +1467,7 @@ HAVE_STRPBRK = @HAVE_STRPBRK@
HAVE_STRPTIME = @HAVE_STRPTIME@
HAVE_STRSEP = @HAVE_STRSEP@
HAVE_STRTOD = @HAVE_STRTOD@
+HAVE_STRTOF = @HAVE_STRTOF@
HAVE_STRTOL = @HAVE_STRTOL@
HAVE_STRTOLD = @HAVE_STRTOLD@
HAVE_STRTOLL = @HAVE_STRTOLL@
@@ -1281,8 +1500,13 @@ HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
+HAVE_TOTALORDER = @HAVE_TOTALORDER@
+HAVE_TOTALORDERF = @HAVE_TOTALORDERF@
+HAVE_TOTALORDERL = @HAVE_TOTALORDERL@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UCHAR_H = @HAVE_UCHAR_H@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
HAVE_UNLINKAT = @HAVE_UNLINKAT@
HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_USLEEP = @HAVE_USLEEP@
@@ -1330,6 +1554,7 @@ HAVE_WMEMCPY = @HAVE_WMEMCPY@
HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WORKING_MBRTOC32 = @HAVE_WORKING_MBRTOC32@
HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
HAVE__EXIT = @HAVE__EXIT@
@@ -1347,6 +1572,10 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@
INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LC_COLLATE_IMPLEMENTED = @LC_COLLATE_IMPLEMENTED@
+LC_MONETARY_IMPLEMENTED = @LC_MONETARY_IMPLEMENTED@
+LC_NUMERIC_IMPLEMENTED = @LC_NUMERIC_IMPLEMENTED@
+LC_TIME_IMPLEMENTED = @LC_TIME_IMPLEMENTED@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -1366,6 +1595,7 @@ LIBUNISTRING_UNICONV_H = @LIBUNISTRING_UNICONV_H@
LIBUNISTRING_UNICTYPE_H = @LIBUNISTRING_UNICTYPE_H@
LIBUNISTRING_UNIGBRK_H = @LIBUNISTRING_UNIGBRK_H@
LIBUNISTRING_UNILBRK_H = @LIBUNISTRING_UNILBRK_H@
+LIBUNISTRING_UNIMETADATA_H = @LIBUNISTRING_UNIMETADATA_H@
LIBUNISTRING_UNINAME_H = @LIBUNISTRING_UNINAME_H@
LIBUNISTRING_UNINORM_H = @LIBUNISTRING_UNINORM_H@
LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@
@@ -1400,10 +1630,18 @@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
LTLIBTHREAD = @LTLIBTHREAD@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
+
+# The customization variable CHECK_NORMAL_MENU_STRUCTURE is necessary with
+# makeinfo versions ≥ 6.8.
+MAKEINFO = \
+ env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= \
+ @MAKEINFO@ -c CHECK_NORMAL_MENU_STRUCTURE=1
+
MANIFEST_TOOL = @MANIFEST_TOOL@
+MBRTOWC_LIB = @MBRTOWC_LIB@
MKDIR_P = @MKDIR_P@
NAMESPACING = @NAMESPACING@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
NETINET_IN_H = @NETINET_IN_H@
NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
NEXT_ASSERT_H = @NEXT_ASSERT_H@
@@ -1411,6 +1649,7 @@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
@@ -1436,11 +1675,13 @@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
+NEXT_AS_FIRST_DIRECTIVE_UCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_UCHAR_H@
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
NEXT_CTYPE_H = @NEXT_CTYPE_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
@@ -1466,6 +1707,7 @@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
NEXT_TIME_H = @NEXT_TIME_H@
+NEXT_UCHAR_H = @NEXT_UCHAR_H@
NEXT_UNISTD_H = @NEXT_UNISTD_H@
NEXT_WCHAR_H = @NEXT_WCHAR_H@
NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
@@ -1488,6 +1730,7 @@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
PRIPTR_PREFIX = @PRIPTR_PREFIX@
PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
RANLIB = @RANLIB@
RC = @RC@
@@ -1499,6 +1742,7 @@ REPLACE_ASINF = @REPLACE_ASINF@
REPLACE_ATAN2F = @REPLACE_ATAN2F@
REPLACE_ATANF = @REPLACE_ATANF@
REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_C32RTOMB = @REPLACE_C32RTOMB@
REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
@@ -1518,7 +1762,10 @@ REPLACE_CTIME = @REPLACE_CTIME@
REPLACE_DPRINTF = @REPLACE_DPRINTF@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
REPLACE_EXECL = @REPLACE_EXECL@
REPLACE_EXECLE = @REPLACE_EXECLE@
REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -1535,10 +1782,12 @@ REPLACE_EXPM1F = @REPLACE_EXPM1F@
REPLACE_EXPM1L = @REPLACE_EXPM1L@
REPLACE_FABSL = @REPLACE_FABSL@
REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FFSLL = @REPLACE_FFSLL@
@@ -1573,12 +1822,16 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
REPLACE_GETDELIM = @REPLACE_GETDELIM@
REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
@@ -1591,6 +1844,8 @@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
REPLACE_ILOGB = @REPLACE_ILOGB@
REPLACE_ILOGBF = @REPLACE_ILOGBF@
REPLACE_ILOGBL = @REPLACE_ILOGBL@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
REPLACE_INET_PTON = @REPLACE_INET_PTON@
REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -1602,9 +1857,11 @@ REPLACE_ISNAN = @REPLACE_ISNAN@
REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@
+REPLACE_ISWPUNCT = @REPLACE_ISWPUNCT@
REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@
REPLACE_ITOLD = @REPLACE_ITOLD@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXP = @REPLACE_LDEXP@
REPLACE_LDEXPL = @REPLACE_LDEXPL@
REPLACE_LINK = @REPLACE_LINK@
REPLACE_LINKAT = @REPLACE_LINKAT@
@@ -1631,19 +1888,27 @@ REPLACE_LSTAT = @REPLACE_LSTAT@
REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
REPLACE_MBRLEN = @REPLACE_MBRLEN@
+REPLACE_MBRTOC16 = @REPLACE_MBRTOC16@
+REPLACE_MBRTOC32 = @REPLACE_MBRTOC32@
REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
REPLACE_MBSINIT = @REPLACE_MBSINIT@
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
REPLACE_MEMCHR = @REPLACE_MEMCHR@
REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
+REPLACE_MEMSET_EXPLICIT = @REPLACE_MEMSET_EXPLICIT@
REPLACE_MKDIR = @REPLACE_MKDIR@
REPLACE_MKFIFO = @REPLACE_MKFIFO@
REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
REPLACE_MKNOD = @REPLACE_MKNOD@
REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_MODF = @REPLACE_MODF@
@@ -1658,8 +1923,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
REPLACE_OPEN = @REPLACE_OPEN@
REPLACE_OPENAT = @REPLACE_OPENAT@
REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
REPLACE_POPEN = @REPLACE_POPEN@
REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
REPLACE_PREAD = @REPLACE_PREAD@
REPLACE_PRINTF = @REPLACE_PRINTF@
REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -1721,6 +1988,7 @@ REPLACE_PUTENV = @REPLACE_PUTENV@
REPLACE_PWRITE = @REPLACE_PWRITE@
REPLACE_QSORT_R = @REPLACE_QSORT_R@
REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RAND = @REPLACE_RAND@
REPLACE_RANDOM = @REPLACE_RANDOM@
REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
REPLACE_READ = @REPLACE_READ@
@@ -1744,6 +2012,7 @@ REPLACE_ROUNDL = @REPLACE_ROUNDL@
REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
REPLACE_SELECT = @REPLACE_SELECT@
REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
REPLACE_SETSTATE = @REPLACE_SETSTATE@
REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
@@ -1758,6 +2027,7 @@ REPLACE_SQRTL = @REPLACE_SQRTL@
REPLACE_STAT = @REPLACE_STAT@
REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
REPLACE_STPNCPY = @REPLACE_STPNCPY@
REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -1772,6 +2042,7 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
REPLACE_STRSTR = @REPLACE_STRSTR@
REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOF = @REPLACE_STRTOF@
REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
REPLACE_STRTOL = @REPLACE_STRTOL@
@@ -1782,12 +2053,19 @@ REPLACE_STRTOULL = @REPLACE_STRTOULL@
REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
+REPLACE_STRVERSCMP = @REPLACE_STRVERSCMP@
REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
REPLACE_TANF = @REPLACE_TANF@
REPLACE_TANHF = @REPLACE_TANHF@
+REPLACE_TIME = @REPLACE_TIME@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
+REPLACE_TIMESPEC_GETRES = @REPLACE_TIMESPEC_GETRES@
REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOTALORDER = @REPLACE_TOTALORDER@
+REPLACE_TOTALORDERF = @REPLACE_TOTALORDERF@
+REPLACE_TOTALORDERL = @REPLACE_TOTALORDERL@
REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
REPLACE_TRUNC = @REPLACE_TRUNC@
REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -1807,21 +2085,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
REPLACE_WCSTOK = @REPLACE_WCSTOK@
REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
REPLACE_WCTOB = @REPLACE_WCTOB@
REPLACE_WCTOMB = @REPLACE_WCTOMB@
+REPLACE_WCTRANS = @REPLACE_WCTRANS@
+REPLACE_WCTYPE = @REPLACE_WCTYPE@
REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_LIB = @SETLOCALE_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDALIGN_H = @STDALIGN_H@
+SMALL_WCHAR_T = @SMALL_WCHAR_T@
STDCKDINT_H = @STDCKDINT_H@
STDDEF_H = @STDDEF_H@
STDINT_H = @STDINT_H@
diff --git a/doc/libunistring.info b/doc/libunistring.info
index 8c3b81f1..32de75c4 100644
--- a/doc/libunistring.info
+++ b/doc/libunistring.info
@@ -425,7 +425,7 @@ encoding; therefore, the majority of users are using multibyte locales.
screen columns of a string is requested.
• gnulib has functions ‘mbschr’ and ‘mbsrrchr’ that are like ‘strchr’
and ‘strrchr’, but work in multibyte locales.
- • gnulib has a function ‘mbsstr’, like ‘strstr’, but works in
+ • gnulib has a function ‘mbsstr’ that is like ‘strstr’, but works in
multibyte locales.
• gnulib has functions ‘mbscspn’, ‘mbspbrk’, ‘mbsspn’ that are like
‘strcspn’, ‘strpbrk’, ‘strspn’, but work in multibyte locales.
@@ -510,7 +510,7 @@ order mark. Their units are 2-byte words.
order mark. Their units are 4-byte words.
Argument pairs ‘(S, N)’ denote a string ‘S[0..N-1]’ with exactly N
-units.
+units.(1)
All functions with prefix ‘ulc_’ operate on C strings in locale
encoding.
@@ -547,6 +547,27 @@ 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.
+ To invoke such a function:
+ • First ask yourself whether you want to accept the overhead of a
+ ‘malloc’ invocation even for a small-sized result. If yes, pass
+ NULL as RESULTBUF. If no, allocate an array of units on the stack,
+ typically between 50 and 4000 bytes large; pass this array as
+ RESULTBUF; and initialize ‘*LENGTHP’ to the number of units of this
+ array.
+ • Upon return from such a function, look at the return value: NULL
+ means an error; look at the value of ‘errno’ in this case.
+ Otherwise, the return value is the result, with ‘*LENGTHP’ units.
+ Note that the function has _not_ added an extra NUL character at
+ the end.
+ • Finally, do memory management. You know that the result was
+ ‘malloc’-allocated if it is ‘!= NULL’ and ‘!= RESULTBUF’.
+
+ ---------- Footnotes ----------
+
+ (1) A NUL unit as terminator is not needed, since the number of units
+is given by N. If some of the units of the string are NUL, they are
+just regular units; they are not interpreted as terminators.
+

File: libunistring.info, Node: unitypes.h, Next: unistr.h, Prev: Conventions, Up: Top
@@ -775,6 +796,18 @@ File: libunistring.info, Node: Copying Unicode strings, Next: Comparing Unicod
This function is similar to ‘memcpy’, except that it operates on
Unicode strings.
+ -- Function: uint8_t * u8_pcpy (uint8_t *DEST, const uint8_t *SRC,
+ size_t N)
+ -- Function: uint16_t * u16_pcpy (uint16_t *DEST, const uint16_t *SRC,
+ size_t N)
+ -- Function: uint32_t * u32_pcpy (uint32_t *DEST, const uint32_t *SRC,
+ size_t N)
+ Copies N units from SRC to DEST, returning a pointer after the last
+ written unit.
+
+ This function is similar to ‘mempcpy’, except that it operates on
+ Unicode strings.
+
-- Function: uint8_t * u8_move (uint8_t *DEST, const uint8_t *SRC,
size_t N)
-- Function: uint16_t * u16_move (uint16_t *DEST, const uint16_t *SRC,
@@ -1051,7 +1084,8 @@ File: libunistring.info, Node: Comparing NUL terminated Unicode strings, Next:
4.5.4 Comparing NUL terminated Unicode strings
----------------------------------------------
- The following functions compare two Unicode strings.
+ The following functions compare two Unicode strings. They ignore
+locale-dependent collation rules.
-- Function: int u8_strcmp (const uint8_t *S1, const uint8_t *S2)
-- Function: int u16_strcmp (const uint16_t *S1, const uint16_t *S2)
@@ -1427,6 +1461,7 @@ format string:
*’).
• The format directive ‘llU’ takes an UTF-32 string (‘const uint32_t
*’).
+ • The format directive ‘n’ is not supported, for security reasons.
A function name with an infix ‘v’ indicates that a ‘va_list’ is
passed instead of multiple arguments.
@@ -1658,6 +1693,7 @@ algorithms in the presence of specific Unicode characters.
* Mirrored character::
* Arabic shaping::
* Properties::
+* Other attributes::
* Scripts::
* Blocks::
* ISO C and Java syntax::
@@ -2279,6 +2315,15 @@ character.
and returns ‘true’, if it exists. Otherwise it stores UC
unmodified in ‘*PUC’ and returns ‘false’.
+ Note: It is possible for this function to return ‘true’ and set
+ ‘*PUC’ to ‘0xFFFD’. This happens when the character has the bidi
+ mirror property (that is, it should be displayed through a mirrored
+ glyph) but this mirrored glyph does not exist as a Unicode
+ character; thus a rendering engine needs to synthesize it
+ artificially or pick it from an appropriate font. This affects
+ mostly mathematical operators. See section “Bidi Mirrored” of the
+ Unicode standard.
+

File: libunistring.info, Node: Arabic shaping, Next: Properties, Prev: Mirrored character, Up: unictype.h
@@ -2488,7 +2533,7 @@ character.
Returns the joining group of a Unicode character.

-File: libunistring.info, Node: Properties, Next: Scripts, Prev: Arabic shaping, Up: unictype.h
+File: libunistring.info, Node: Properties, Next: Other attributes, Prev: Arabic shaping, Up: unictype.h
8.9 Properties
==============
@@ -2562,6 +2607,8 @@ File: libunistring.info, Node: Properties as objects, Next: Properties as func
-- Constant: uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE
-- Constant: uc_property_t UC_PROPERTY_XID_START
-- Constant: uc_property_t UC_PROPERTY_XID_CONTINUE
+ -- Constant: uc_property_t UC_PROPERTY_ID_COMPAT_MATH_START
+ -- Constant: uc_property_t UC_PROPERTY_ID_COMPAT_MATH_CONTINUE
-- Constant: uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE
-- Constant: uc_property_t UC_PROPERTY_PATTERN_SYNTAX
@@ -2603,6 +2650,7 @@ File: libunistring.info, Node: Properties as objects, Next: Properties as func
-- Constant: uc_property_t UC_PROPERTY_IDEOGRAPHIC
-- Constant: uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH
-- Constant: uc_property_t UC_PROPERTY_RADICAL
+ -- Constant: uc_property_t UC_PROPERTY_IDS_UNARY_OPERATOR
-- Constant: uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR
-- Constant: uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR
@@ -2622,6 +2670,7 @@ File: libunistring.info, Node: Properties as objects, Next: Properties as func
-- Constant: uc_property_t UC_PROPERTY_NON_BREAK
-- Constant: uc_property_t UC_PROPERTY_ISO_CONTROL
-- Constant: uc_property_t UC_PROPERTY_FORMAT_CONTROL
+ -- Constant: uc_property_t UC_PROPERTY_PREPENDED_CONCATENATION_MARK
-- Constant: uc_property_t UC_PROPERTY_DASH
-- Constant: uc_property_t UC_PROPERTY_HYPHEN
-- Constant: uc_property_t UC_PROPERTY_PUNCTUATION
@@ -2717,6 +2766,8 @@ File: libunistring.info, Node: Properties as functions, Prev: Properties as ob
-- Function: bool uc_is_property_other_id_continue (ucs4_t UC)
-- Function: bool uc_is_property_xid_start (ucs4_t UC)
-- Function: bool uc_is_property_xid_continue (ucs4_t UC)
+ -- Function: bool uc_is_property_id_compat_math_start (ucs4_t UC)
+ -- Function: bool uc_is_property_id_compat_math_continue (ucs4_t UC)
-- Function: bool uc_is_property_pattern_white_space (ucs4_t UC)
-- Function: bool uc_is_property_pattern_syntax (ucs4_t UC)
@@ -2758,6 +2809,7 @@ File: libunistring.info, Node: Properties as functions, Prev: Properties as ob
-- Function: bool uc_is_property_ideographic (ucs4_t UC)
-- Function: bool uc_is_property_unified_ideograph (ucs4_t UC)
-- Function: bool uc_is_property_radical (ucs4_t UC)
+ -- Function: bool uc_is_property_ids_unary_operator (ucs4_t UC)
-- Function: bool uc_is_property_ids_binary_operator (ucs4_t UC)
-- Function: bool uc_is_property_ids_trinary_operator (ucs4_t UC)
@@ -2777,6 +2829,8 @@ File: libunistring.info, Node: Properties as functions, Prev: Properties as ob
-- Function: bool uc_is_property_non_break (ucs4_t UC)
-- Function: bool uc_is_property_iso_control (ucs4_t UC)
-- Function: bool uc_is_property_format_control (ucs4_t UC)
+ -- Function: bool uc_is_property_prepended_concatenation_mark
+ (ucs4_t UC)
-- Function: bool uc_is_property_dash (ucs4_t UC)
-- Function: bool uc_is_property_hyphen (ucs4_t UC)
-- Function: bool uc_is_property_punctuation (ucs4_t UC)
@@ -2800,9 +2854,56 @@ File: libunistring.info, Node: Properties as functions, Prev: Properties as ob
-- Function: bool uc_is_property_regional_indicator (ucs4_t UC)

-File: libunistring.info, Node: Scripts, Next: Blocks, Prev: Properties, Up: unictype.h
+File: libunistring.info, Node: Other attributes, Next: Scripts, Prev: Properties, Up: unictype.h
+
+8.10 Other attributes
+=====================
+
+ This section defines non-boolean attributes of Unicode characters.
+
+* Menu:
+
+* Indic conjunct break::
+
+
+File: libunistring.info, Node: Indic conjunct break, Up: Other attributes
+
+8.10.1 Indic conjunct break
+---------------------------
+
+ The Indic_Conjunct_Break attribute is used when determining the
+grapheme cluster boundary in Indic scripts.
+
+ The Indic_Conjunct_Break attribute has the following possible values:
+
+ -- Constant: int UC_INDIC_CONJUNCT_BREAK_NONE
+ -- Constant: int UC_INDIC_CONJUNCT_BREAK_CONSONANT
+ -- Constant: int UC_INDIC_CONJUNCT_BREAK_LINKER
+ -- Constant: int UC_INDIC_CONJUNCT_BREAK_EXTEND
+
+ The following functions implement the association between an
+Indic_Conjunct_Break value and its name.
+
+ -- Function: const char * uc_indic_conjunct_break_name
+ (int INDIC_CONJUNCT_BREAK)
+ Returns the name of an Indic_Conjunct_Break value.
-8.10 Scripts
+ -- Function: int uc_indic_conjunct_break_byname
+ (const char *INDIC_CONJUNCT_BREAK_NAME)
+ Returns the Indic_Conjunct_Break value given by name, e.g.
+ ‘"Consonant"’. This lookup ignores spaces, underscores, or hyphens
+ as word separators and is case-insignificant.
+
+ The following function gives the Indic_Conjunct_Break attribute of
+every Unicode character.
+
+ -- Function: int uc_indic_conjunct_break (ucs4_t UC)
+ Returns the Indic_Conjunct_Break attribute of a Unicode character.
+
+
+File: libunistring.info, Node: Scripts, Next: Blocks, Prev: Other attributes, Up: unictype.h
+
+8.11 Scripts
============
The Unicode characters are subdivided into scripts.
@@ -2842,7 +2943,7 @@ File: libunistring.info, Node: Scripts, Next: Blocks, Prev: Properties, Up:

File: libunistring.info, Node: Blocks, Next: ISO C and Java syntax, Prev: Scripts, Up: unictype.h
-8.11 Blocks
+8.12 Blocks
===========
The Unicode characters are subdivided into blocks. A block is an
@@ -2883,7 +2984,7 @@ interval of Unicode code points.

File: libunistring.info, Node: ISO C and Java syntax, Next: Classifications like in ISO C, Prev: Blocks, Up: unictype.h
-8.12 ISO C and Java syntax
+8.13 ISO C and Java syntax
==========================
The following properties are taken from language standards. The
@@ -2929,7 +3030,7 @@ constituent of an identifier in the given programming language.

File: libunistring.info, Node: Classifications like in ISO C, Prev: ISO C and Java syntax, Up: unictype.h
-8.13 Classifications like in ISO C
+8.14 Classifications like in ISO C
==================================
The following character classifications mimic those declared in the
@@ -3090,7 +3191,9 @@ clusters in a string.
Note that these functions do not handle the case when a character
outside of the range between S and END is needed to determine the
- boundary. Use ‘_grapheme_breaks’ functions for such cases.
+ boundary. This is the case in particular with syllables in Indic
+ scripts or emojis. Use ‘_grapheme_breaks’ functions for such
+ cases.
-- Function: void u8_grapheme_prev (const uint8_t *S,
const uint8_t *START)
@@ -3104,7 +3207,9 @@ clusters in a string.
Note that these functions do not handle the case when a character
outside of the range between START and S is needed to determine the
- boundary. Use ‘_grapheme_breaks’ functions for such cases.
+ boundary. This is the case in particular with syllables in Indic
+ scripts or emojis. Use ‘_grapheme_breaks’ functions for such
+ cases.
Note also that these functions work only on well-formed Unicode
strings.
@@ -3198,8 +3303,9 @@ the higher-level functions in the previous section are directly based.
they are preferred.
Note that this function does not handle the case when three or more
- consecutive characters are needed to determine the boundary. Use
- ‘uc_grapheme_breaks’ for such cases.
+ consecutive characters are needed to determine the boundary. This
+ is the case in particular with syllables in Indic scripts or
+ emojis. Use ‘uc_grapheme_breaks’ for such cases.

File: libunistring.info, Node: uniwbrk.h, Next: unilbrk.h, Prev: unigbrk.h, Up: Top
@@ -3737,7 +3843,7 @@ an entire string at once and are language aware.
For most characters, this is the same as the uppercase mapping.
There are only few characters where the title case variant and the
- uuper case variant are different. These characters occur in the
+ upper case variant are different. These characters occur in the
Latin writing of the Croatian, Bosnian, and Serbian languages.
Lower case Title case Upper case
@@ -3762,7 +3868,7 @@ File: libunistring.info, Node: Case mappings of strings, Next: Case mappings o
=============================
Case mapping should always be performed on entire strings, not on
-individual characters. The functions in this sections do so.
+individual characters. The functions in this section do so.
These functions allow to apply a normalization after the case
mapping. The reason is that if you want to treat ‘ä’ and ‘Ä’ the same,
@@ -4041,6 +4147,9 @@ in case and normalization.
The RESULTBUF and LENGTHP arguments are as described in chapter
*note Conventions::.
+ The following functions ignore locale-dependent collation rules, but
+do use locale-dependent case mappings (if ISO639_LANGUAGE is not NULL).
+
-- Function: int u8_casecmp (const uint8_t *S1, size_t N1,
const uint8_t *S2, size_t N2, const char *ISO639_LANGUAGE,
uninorm_t NF, int *RESULTP)
@@ -4263,15 +4372,15 @@ version number of the libunistring library.
-- Macro: int _LIBUNISTRING_VERSION
This constant contains the version of libunistring that is being
- used at compile time. It encodes the major and minor parts of the
- version number only. These parts are encoded in the form
- ‘(major<<8) + minor’.
+ used at compile time. It encodes the major, minor, and subminor
+ parts of the version number. These parts are encoded in the form
+ ‘(major<<16) + (minor<<8) + subminor’.
-- Constant: int _libunistring_version
This constant contains the version of libunistring that is being
- used at run time. It encodes the major and minor parts of the
- version number only. These parts are encoded in the form
- ‘(major<<8) + minor’.
+ used at run time. It encodes the major, minor, and subminor parts
+ of the version number. These parts are encoded in the form
+ ‘(major<<16) + (minor<<8) + subminor’.
It is possible that ‘_libunistring_version’ is greater than
‘_LIBUNISTRING_VERSION’. This can happen when you use ‘libunistring’ as
@@ -4279,6 +4388,14 @@ a shared library, and a newer, binary backward-compatible version has
been installed after your program that uses ‘libunistring’ was
installed.
+ ‘<unistring/version.h>’ also contains:
+
+ -- Constant: int _libunistring_unicode_version
+ This constant contains the version of the Unicode standard that is
+ implemented by libunistring. It encodes the major and minor parts
+ of the version number only. These parts are encoded in the form
+ ‘(major<<8) + minor’.
+

File: libunistring.info, Node: Autoconf macro, Next: Reporting problems, Prev: Include files, Up: Using the library
@@ -4356,19 +4473,20 @@ Appendix A The ‘wchar_t’ mess
first problem mentioned in the section *note char * strings::. They
introduced
• a type ‘wchar_t’, designed to encapsulate an entire character,
- • a “wide string” type ‘wchar_t *’, and
+ • a “wide string” type ‘wchar_t *’, with some API functions declared
+ in ‘<wchar.h>’, and
• functions declared in ‘<wctype.h>’ that were meant to supplant the
ones in ‘<ctype.h>’.
Unfortunately, this API and its implementation has numerous problems:
- • On AIX and Windows platforms, ‘wchar_t’ is a 16-bit type. This
- means that it can never accommodate an entire Unicode character.
- Either the ‘wchar_t *’ strings are limited to characters in UCS-2
- (the “Basic Multilingual Plane” of Unicode), or — if ‘wchar_t *’
- strings are encoded in UTF-16 — a ‘wchar_t’ represents only half of
- a character in the worst case, making the ‘<wctype.h>’ functions
- pointless.
+ • On Windows platforms and on AIX in 32-bit mode, ‘wchar_t’ is a
+ 16-bit type. This means that it can never accommodate an entire
+ Unicode character. Either the ‘wchar_t *’ strings are limited to
+ characters in UCS-2 (the “Basic Multilingual Plane” of Unicode), or
+ — if ‘wchar_t *’ strings are encoded in UTF-16 — a ‘wchar_t’
+ represents only half of a character in the worst case, making the
+ ‘<wctype.h>’ functions pointless.
• On Solaris and FreeBSD, the ‘wchar_t’ encoding is locale dependent
and undocumented. This means, if you want to know any property of
@@ -5906,23 +6024,23 @@ Index
* comparing, ignoring case: Case insensitive comparison.
(line 6)
* comparing, ignoring case, with collation rules: Case insensitive comparison.
- (line 71)
+ (line 74)
* comparing, ignoring normalization: Normalizing comparisons.
(line 6)
* comparing, ignoring normalization and case: Case insensitive comparison.
(line 6)
* comparing, ignoring normalization and case, with collation rules: Case insensitive comparison.
- (line 71)
+ (line 74)
* comparing, ignoring normalization, with collation rules: Normalizing comparisons.
(line 22)
* comparing, with collation rules: Comparing NUL terminated Unicode strings.
- (line 18)
+ (line 19)
* comparing, with collation rules, ignoring case: Case insensitive comparison.
- (line 71)
+ (line 74)
* comparing, with collation rules, ignoring normalization: Normalizing comparisons.
(line 22)
* comparing, with collation rules, ignoring normalization and case: Case insensitive comparison.
- (line 71)
+ (line 74)
* compiler options: Compiler options. (line 24)
* composing, Unicode characters: Composition of characters.
(line 6)
@@ -5954,6 +6072,8 @@ Index
* halfwidth: uniwidth.h. (line 22)
* identifiers: ISO C and Java syntax.
(line 6)
+* Indic_Conjunct_Break: Indic conjunct break.
+ (line 6)
* installation: Installation. (line 10)
* internationalization: Unicode and i18n. (line 6)
* iterating: Iterating. (line 6)
@@ -6002,16 +6122,16 @@ Index
(line 10)
* titlecasing: Case mappings of strings.
(line 6)
-* u16_asnprintf: unistdio.h. (line 111)
-* u16_asprintf: unistdio.h. (line 109)
+* u16_asnprintf: unistdio.h. (line 112)
+* u16_asprintf: unistdio.h. (line 110)
* u16_casecmp: Case insensitive comparison.
- (line 54)
+ (line 57)
* u16_casecoll: Case insensitive comparison.
- (line 100)
+ (line 103)
* u16_casefold: Case insensitive comparison.
(line 12)
* u16_casexfrm: Case insensitive comparison.
- (line 77)
+ (line 80)
* u16_casing_prefixes_context: Case mappings of substrings.
(line 37)
* u16_casing_prefix_context: Case mappings of substrings.
@@ -6045,11 +6165,11 @@ Index
* u16_endswith: Searching for a substring.
(line 30)
* u16_grapheme_breaks: Grapheme cluster breaks in a string.
- (line 45)
+ (line 49)
* u16_grapheme_next: Grapheme cluster breaks in a string.
(line 11)
* u16_grapheme_prev: Grapheme cluster breaks in a string.
- (line 25)
+ (line 27)
* u16_is_cased: Case detection. (line 55)
* u16_is_casefolded: Case detection. (line 42)
* u16_is_lowercase: Case detection. (line 22)
@@ -6061,7 +6181,7 @@ Index
* u16_mbtoucr: Iterating. (line 48)
* u16_mbtouc_unsafe: Iterating. (line 39)
* u16_move: Copying Unicode strings.
- (line 21)
+ (line 33)
* u16_next: Iterating over a NUL terminated Unicode string.
(line 23)
* u16_normalize: Normalization of strings.
@@ -6072,13 +6192,15 @@ Index
(line 40)
* u16_normxfrm: Normalizing comparisons.
(line 24)
+* u16_pcpy: Copying Unicode strings.
+ (line 21)
* u16_possible_linebreaks: unilbrk.h. (line 48)
* u16_prev: Iterating over a NUL terminated Unicode string.
(line 34)
* u16_set: Copying Unicode strings.
- (line 34)
-* u16_snprintf: unistdio.h. (line 107)
-* u16_sprintf: unistdio.h. (line 106)
+ (line 46)
+* u16_snprintf: unistdio.h. (line 108)
+* u16_sprintf: unistdio.h. (line 107)
* u16_startswith: Searching for a substring.
(line 22)
* u16_stpcpy: Copying a NUL terminated Unicode string.
@@ -6090,9 +6212,9 @@ Index
* u16_strchr: Searching for a character in a NUL terminated Unicode string.
(line 9)
* u16_strcmp: Comparing NUL terminated Unicode strings.
- (line 9)
+ (line 10)
* u16_strcoll: Comparing NUL terminated Unicode strings.
- (line 19)
+ (line 20)
* u16_strconv_from_encoding: uniconv.h. (line 139)
* u16_strconv_from_locale: uniconv.h. (line 168)
* u16_strconv_to_encoding: uniconv.h. (line 152)
@@ -6111,7 +6233,7 @@ Index
* u16_strncat: Copying a NUL terminated Unicode string.
(line 66)
* u16_strncmp: Comparing NUL terminated Unicode strings.
- (line 35)
+ (line 36)
* u16_strncpy: Copying a NUL terminated Unicode string.
(line 31)
* u16_strnlen: Length. (line 17)
@@ -6135,34 +6257,34 @@ Index
(line 30)
* u16_to_u8: Elementary string conversions.
(line 23)
-* u16_u16_asnprintf: unistdio.h. (line 131)
-* u16_u16_asprintf: unistdio.h. (line 129)
-* u16_u16_snprintf: unistdio.h. (line 127)
-* u16_u16_sprintf: unistdio.h. (line 125)
-* u16_u16_vasnprintf: unistdio.h. (line 139)
-* u16_u16_vasprintf: unistdio.h. (line 137)
-* u16_u16_vsnprintf: unistdio.h. (line 135)
-* u16_u16_vsprintf: unistdio.h. (line 133)
+* u16_u16_asnprintf: unistdio.h. (line 132)
+* u16_u16_asprintf: unistdio.h. (line 130)
+* u16_u16_snprintf: unistdio.h. (line 128)
+* u16_u16_sprintf: unistdio.h. (line 126)
+* u16_u16_vasnprintf: unistdio.h. (line 140)
+* u16_u16_vasprintf: unistdio.h. (line 138)
+* u16_u16_vsnprintf: unistdio.h. (line 136)
+* u16_u16_vsprintf: unistdio.h. (line 134)
* u16_uctomb: Creating Unicode strings.
(line 10)
-* u16_vasnprintf: unistdio.h. (line 119)
-* u16_vasprintf: unistdio.h. (line 117)
-* u16_vsnprintf: unistdio.h. (line 115)
-* u16_vsprintf: unistdio.h. (line 113)
+* u16_vasnprintf: unistdio.h. (line 120)
+* u16_vasprintf: unistdio.h. (line 118)
+* u16_vsnprintf: unistdio.h. (line 116)
+* u16_vsprintf: unistdio.h. (line 114)
* u16_width: uniwidth.h. (line 29)
* u16_width_linebreaks: unilbrk.h. (line 66)
* u16_wordbreaks: Word breaks in a string.
(line 9)
-* u32_asnprintf: unistdio.h. (line 150)
-* u32_asprintf: unistdio.h. (line 148)
+* u32_asnprintf: unistdio.h. (line 151)
+* u32_asprintf: unistdio.h. (line 149)
* u32_casecmp: Case insensitive comparison.
- (line 57)
+ (line 60)
* u32_casecoll: Case insensitive comparison.
- (line 103)
+ (line 106)
* u32_casefold: Case insensitive comparison.
(line 15)
* u32_casexfrm: Case insensitive comparison.
- (line 80)
+ (line 83)
* u32_casing_prefixes_context: Case mappings of substrings.
(line 40)
* u32_casing_prefix_context: Case mappings of substrings.
@@ -6196,11 +6318,11 @@ Index
* u32_endswith: Searching for a substring.
(line 32)
* u32_grapheme_breaks: Grapheme cluster breaks in a string.
- (line 47)
+ (line 51)
* u32_grapheme_next: Grapheme cluster breaks in a string.
(line 13)
* u32_grapheme_prev: Grapheme cluster breaks in a string.
- (line 27)
+ (line 29)
* u32_is_cased: Case detection. (line 57)
* u32_is_casefolded: Case detection. (line 44)
* u32_is_lowercase: Case detection. (line 24)
@@ -6212,7 +6334,7 @@ Index
* u32_mbtoucr: Iterating. (line 49)
* u32_mbtouc_unsafe: Iterating. (line 41)
* u32_move: Copying Unicode strings.
- (line 23)
+ (line 35)
* u32_next: Iterating over a NUL terminated Unicode string.
(line 24)
* u32_normalize: Normalization of strings.
@@ -6223,13 +6345,15 @@ Index
(line 42)
* u32_normxfrm: Normalizing comparisons.
(line 26)
+* u32_pcpy: Copying Unicode strings.
+ (line 23)
* u32_possible_linebreaks: unilbrk.h. (line 50)
* u32_prev: Iterating over a NUL terminated Unicode string.
(line 36)
* u32_set: Copying Unicode strings.
- (line 35)
-* u32_snprintf: unistdio.h. (line 146)
-* u32_sprintf: unistdio.h. (line 145)
+ (line 47)
+* u32_snprintf: unistdio.h. (line 147)
+* u32_sprintf: unistdio.h. (line 146)
* u32_startswith: Searching for a substring.
(line 24)
* u32_stpcpy: Copying a NUL terminated Unicode string.
@@ -6241,9 +6365,9 @@ Index
* u32_strchr: Searching for a character in a NUL terminated Unicode string.
(line 10)
* u32_strcmp: Comparing NUL terminated Unicode strings.
- (line 10)
+ (line 11)
* u32_strcoll: Comparing NUL terminated Unicode strings.
- (line 20)
+ (line 21)
* u32_strconv_from_encoding: uniconv.h. (line 141)
* u32_strconv_from_locale: uniconv.h. (line 169)
* u32_strconv_to_encoding: uniconv.h. (line 154)
@@ -6262,7 +6386,7 @@ Index
* u32_strncat: Copying a NUL terminated Unicode string.
(line 68)
* u32_strncmp: Comparing NUL terminated Unicode strings.
- (line 37)
+ (line 38)
* u32_strncpy: Copying a NUL terminated Unicode string.
(line 33)
* u32_strnlen: Length. (line 18)
@@ -6286,34 +6410,34 @@ Index
(line 44)
* u32_to_u8: Elementary string conversions.
(line 37)
-* u32_u32_asnprintf: unistdio.h. (line 170)
-* u32_u32_asprintf: unistdio.h. (line 168)
-* u32_u32_snprintf: unistdio.h. (line 166)
-* u32_u32_sprintf: unistdio.h. (line 164)
-* u32_u32_vasnprintf: unistdio.h. (line 178)
-* u32_u32_vasprintf: unistdio.h. (line 176)
-* u32_u32_vsnprintf: unistdio.h. (line 174)
-* u32_u32_vsprintf: unistdio.h. (line 172)
+* u32_u32_asnprintf: unistdio.h. (line 171)
+* u32_u32_asprintf: unistdio.h. (line 169)
+* u32_u32_snprintf: unistdio.h. (line 167)
+* u32_u32_sprintf: unistdio.h. (line 165)
+* u32_u32_vasnprintf: unistdio.h. (line 179)
+* u32_u32_vasprintf: unistdio.h. (line 177)
+* u32_u32_vsnprintf: unistdio.h. (line 175)
+* u32_u32_vsprintf: unistdio.h. (line 173)
* u32_uctomb: Creating Unicode strings.
(line 11)
-* u32_vasnprintf: unistdio.h. (line 158)
-* u32_vasprintf: unistdio.h. (line 156)
-* u32_vsnprintf: unistdio.h. (line 154)
-* u32_vsprintf: unistdio.h. (line 152)
+* u32_vasnprintf: unistdio.h. (line 159)
+* u32_vasprintf: unistdio.h. (line 157)
+* u32_vsnprintf: unistdio.h. (line 155)
+* u32_vsprintf: unistdio.h. (line 153)
* u32_width: uniwidth.h. (line 31)
* u32_width_linebreaks: unilbrk.h. (line 69)
* u32_wordbreaks: Word breaks in a string.
(line 10)
-* u8_asnprintf: unistdio.h. (line 72)
-* u8_asprintf: unistdio.h. (line 70)
+* u8_asnprintf: unistdio.h. (line 73)
+* u8_asprintf: unistdio.h. (line 71)
* u8_casecmp: Case insensitive comparison.
- (line 51)
+ (line 54)
* u8_casecoll: Case insensitive comparison.
- (line 97)
+ (line 100)
* u8_casefold: Case insensitive comparison.
(line 9)
* u8_casexfrm: Case insensitive comparison.
- (line 74)
+ (line 77)
* u8_casing_prefixes_context: Case mappings of substrings.
(line 34)
* u8_casing_prefix_context: Case mappings of substrings.
@@ -6347,11 +6471,11 @@ Index
* u8_endswith: Searching for a substring.
(line 28)
* u8_grapheme_breaks: Grapheme cluster breaks in a string.
- (line 43)
+ (line 47)
* u8_grapheme_next: Grapheme cluster breaks in a string.
(line 9)
* u8_grapheme_prev: Grapheme cluster breaks in a string.
- (line 23)
+ (line 25)
* u8_is_cased: Case detection. (line 53)
* u8_is_casefolded: Case detection. (line 40)
* u8_is_lowercase: Case detection. (line 20)
@@ -6363,7 +6487,7 @@ Index
* u8_mbtoucr: Iterating. (line 47)
* u8_mbtouc_unsafe: Iterating. (line 37)
* u8_move: Copying Unicode strings.
- (line 19)
+ (line 31)
* u8_next: Iterating over a NUL terminated Unicode string.
(line 22)
* u8_normalize: Normalization of strings.
@@ -6374,13 +6498,15 @@ Index
(line 38)
* u8_normxfrm: Normalizing comparisons.
(line 22)
+* u8_pcpy: Copying Unicode strings.
+ (line 19)
* u8_possible_linebreaks: unilbrk.h. (line 46)
* u8_prev: Iterating over a NUL terminated Unicode string.
(line 32)
* u8_set: Copying Unicode strings.
- (line 33)
-* u8_snprintf: unistdio.h. (line 68)
-* u8_sprintf: unistdio.h. (line 67)
+ (line 45)
+* u8_snprintf: unistdio.h. (line 69)
+* u8_sprintf: unistdio.h. (line 68)
* u8_startswith: Searching for a substring.
(line 20)
* u8_stpcpy: Copying a NUL terminated Unicode string.
@@ -6392,9 +6518,9 @@ Index
* u8_strchr: Searching for a character in a NUL terminated Unicode string.
(line 8)
* u8_strcmp: Comparing NUL terminated Unicode strings.
- (line 8)
+ (line 9)
* u8_strcoll: Comparing NUL terminated Unicode strings.
- (line 18)
+ (line 19)
* u8_strconv_from_encoding: uniconv.h. (line 137)
* u8_strconv_from_locale: uniconv.h. (line 167)
* u8_strconv_to_encoding: uniconv.h. (line 150)
@@ -6413,7 +6539,7 @@ Index
* u8_strncat: Copying a NUL terminated Unicode string.
(line 64)
* u8_strncmp: Comparing NUL terminated Unicode strings.
- (line 33)
+ (line 34)
* u8_strncpy: Copying a NUL terminated Unicode string.
(line 29)
* u8_strnlen: Length. (line 16)
@@ -6437,20 +6563,20 @@ Index
(line 9)
* u8_to_u32: Elementary string conversions.
(line 16)
-* u8_u8_asnprintf: unistdio.h. (line 92)
-* u8_u8_asprintf: unistdio.h. (line 90)
-* u8_u8_snprintf: unistdio.h. (line 88)
-* u8_u8_sprintf: unistdio.h. (line 86)
-* u8_u8_vasnprintf: unistdio.h. (line 100)
-* u8_u8_vasprintf: unistdio.h. (line 98)
-* u8_u8_vsnprintf: unistdio.h. (line 96)
-* u8_u8_vsprintf: unistdio.h. (line 94)
+* u8_u8_asnprintf: unistdio.h. (line 93)
+* u8_u8_asprintf: unistdio.h. (line 91)
+* u8_u8_snprintf: unistdio.h. (line 89)
+* u8_u8_sprintf: unistdio.h. (line 87)
+* u8_u8_vasnprintf: unistdio.h. (line 101)
+* u8_u8_vasprintf: unistdio.h. (line 99)
+* u8_u8_vsnprintf: unistdio.h. (line 97)
+* u8_u8_vsprintf: unistdio.h. (line 95)
* u8_uctomb: Creating Unicode strings.
(line 9)
-* u8_vasnprintf: unistdio.h. (line 80)
-* u8_vasprintf: unistdio.h. (line 78)
-* u8_vsnprintf: unistdio.h. (line 76)
-* u8_vsprintf: unistdio.h. (line 74)
+* u8_vasnprintf: unistdio.h. (line 81)
+* u8_vasprintf: unistdio.h. (line 79)
+* u8_vsnprintf: unistdio.h. (line 77)
+* u8_vsprintf: unistdio.h. (line 75)
* u8_width: uniwidth.h. (line 27)
* u8_width_linebreaks: unilbrk.h. (line 63)
* u8_wordbreaks: Word breaks in a string.
@@ -6498,7 +6624,13 @@ Index
* uc_graphemeclusterbreak_property: Grapheme cluster break property.
(line 37)
* uc_grapheme_breaks: Grapheme cluster breaks in a string.
- (line 51)
+ (line 55)
+* uc_indic_conjunct_break: Indic conjunct break.
+ (line 32)
+* uc_indic_conjunct_break_byname: Indic conjunct break.
+ (line 23)
+* uc_indic_conjunct_break_name: Indic conjunct break.
+ (line 19)
* uc_is_alnum: Classifications like in ISO C.
(line 13)
* uc_is_alpha: Classifications like in ISO C.
@@ -6527,45 +6659,45 @@ Index
* uc_is_print: Classifications like in ISO C.
(line 40)
* uc_is_property: Properties as objects.
- (line 160)
+ (line 164)
* uc_is_property_alphabetic: Properties as functions.
(line 9)
* uc_is_property_ascii_hex_digit: Properties as functions.
- (line 80)
+ (line 82)
* uc_is_property_bidi_arabic_digit: Properties as functions.
- (line 66)
+ (line 68)
* uc_is_property_bidi_arabic_right_to_left: Properties as functions.
- (line 62)
+ (line 64)
* uc_is_property_bidi_block_separator: Properties as functions.
- (line 68)
+ (line 70)
* uc_is_property_bidi_boundary_neutral: Properties as functions.
- (line 72)
+ (line 74)
* uc_is_property_bidi_common_separator: Properties as functions.
- (line 67)
+ (line 69)
* uc_is_property_bidi_control: Properties as functions.
- (line 59)
+ (line 61)
* uc_is_property_bidi_embedding_or_override: Properties as functions.
- (line 74)
+ (line 76)
* uc_is_property_bidi_european_digit: Properties as functions.
- (line 63)
+ (line 65)
* uc_is_property_bidi_eur_num_separator: Properties as functions.
- (line 64)
+ (line 66)
* uc_is_property_bidi_eur_num_terminator: Properties as functions.
- (line 65)
+ (line 67)
* uc_is_property_bidi_hebrew_right_to_left: Properties as functions.
- (line 61)
+ (line 63)
* uc_is_property_bidi_left_to_right: Properties as functions.
- (line 60)
+ (line 62)
* uc_is_property_bidi_non_spacing_mark: Properties as functions.
- (line 71)
+ (line 73)
* uc_is_property_bidi_other_neutral: Properties as functions.
- (line 75)
+ (line 77)
* uc_is_property_bidi_pdf: Properties as functions.
- (line 73)
+ (line 75)
* uc_is_property_bidi_segment_separator: Properties as functions.
- (line 69)
+ (line 71)
* uc_is_property_bidi_whitespace: Properties as functions.
- (line 70)
+ (line 72)
* uc_is_property_cased: Properties as functions.
(line 29)
* uc_is_property_case_ignorable: Properties as functions.
@@ -6581,85 +6713,91 @@ Index
* uc_is_property_changes_when_uppercased: Properties as functions.
(line 32)
* uc_is_property_combining: Properties as functions.
- (line 119)
+ (line 124)
* uc_is_property_composite: Properties as functions.
- (line 120)
+ (line 125)
* uc_is_property_currency_symbol: Properties as functions.
- (line 114)
+ (line 119)
* uc_is_property_dash: Properties as functions.
- (line 106)
+ (line 111)
* uc_is_property_decimal_digit: Properties as functions.
- (line 121)
+ (line 126)
* uc_is_property_default_ignorable_code_point: Properties as functions.
(line 12)
* uc_is_property_deprecated: Properties as functions.
(line 16)
* uc_is_property_diacritic: Properties as functions.
- (line 123)
+ (line 128)
* uc_is_property_emoji: Properties as functions.
- (line 92)
+ (line 95)
* uc_is_property_emoji_component: Properties as functions.
- (line 96)
+ (line 99)
* uc_is_property_emoji_modifier: Properties as functions.
- (line 94)
+ (line 97)
* uc_is_property_emoji_modifier_base: Properties as functions.
- (line 95)
+ (line 98)
* uc_is_property_emoji_presentation: Properties as functions.
- (line 93)
+ (line 96)
* uc_is_property_extended_pictographic: Properties as functions.
- (line 97)
+ (line 100)
* uc_is_property_extender: Properties as functions.
- (line 124)
+ (line 129)
* uc_is_property_format_control: Properties as functions.
- (line 105)
+ (line 108)
* uc_is_property_grapheme_base: Properties as functions.
- (line 52)
+ (line 54)
* uc_is_property_grapheme_extend: Properties as functions.
- (line 53)
-* uc_is_property_grapheme_link: Properties as functions.
(line 55)
+* uc_is_property_grapheme_link: Properties as functions.
+ (line 57)
* uc_is_property_hex_digit: Properties as functions.
- (line 79)
+ (line 81)
* uc_is_property_hyphen: Properties as functions.
- (line 107)
+ (line 112)
* uc_is_property_ideographic: Properties as functions.
- (line 84)
+ (line 86)
* uc_is_property_ids_binary_operator: Properties as functions.
- (line 87)
+ (line 90)
* uc_is_property_ids_trinary_operator: Properties as functions.
- (line 88)
+ (line 91)
+* uc_is_property_ids_unary_operator: Properties as functions.
+ (line 89)
+* uc_is_property_id_compat_math_continue: Properties as functions.
+ (line 47)
+* uc_is_property_id_compat_math_start: Properties as functions.
+ (line 46)
* uc_is_property_id_continue: Properties as functions.
(line 42)
* uc_is_property_id_start: Properties as functions.
(line 40)
* uc_is_property_ignorable_control: Properties as functions.
- (line 125)
+ (line 130)
* uc_is_property_iso_control: Properties as functions.
- (line 104)
+ (line 107)
* uc_is_property_join_control: Properties as functions.
- (line 51)
+ (line 53)
* uc_is_property_left_of_pair: Properties as functions.
- (line 118)
+ (line 123)
* uc_is_property_line_separator: Properties as functions.
- (line 109)
+ (line 114)
* uc_is_property_logical_order_exception: Properties as functions.
(line 17)
* uc_is_property_lowercase: Properties as functions.
(line 26)
* uc_is_property_math: Properties as functions.
- (line 115)
+ (line 120)
* uc_is_property_non_break: Properties as functions.
- (line 103)
+ (line 106)
* uc_is_property_not_a_character: Properties as functions.
(line 11)
* uc_is_property_numeric: Properties as functions.
- (line 122)
+ (line 127)
* uc_is_property_other_alphabetic: Properties as functions.
(line 10)
* uc_is_property_other_default_ignorable_code_point: Properties as functions.
(line 14)
* uc_is_property_other_grapheme_extend: Properties as functions.
- (line 54)
+ (line 56)
* uc_is_property_other_id_continue: Properties as functions.
(line 43)
* uc_is_property_other_id_start: Properties as functions.
@@ -6667,41 +6805,43 @@ Index
* uc_is_property_other_lowercase: Properties as functions.
(line 27)
* uc_is_property_other_math: Properties as functions.
- (line 116)
+ (line 121)
* uc_is_property_other_uppercase: Properties as functions.
(line 25)
* uc_is_property_paired_punctuation: Properties as functions.
- (line 117)
+ (line 122)
* uc_is_property_paragraph_separator: Properties as functions.
- (line 110)
+ (line 115)
* uc_is_property_pattern_syntax: Properties as functions.
- (line 47)
+ (line 49)
* uc_is_property_pattern_white_space: Properties as functions.
- (line 46)
+ (line 48)
+* uc_is_property_prepended_concatenation_mark: Properties as functions.
+ (line 109)
* uc_is_property_private_use: Properties as functions.
(line 19)
* uc_is_property_punctuation: Properties as functions.
- (line 108)
+ (line 113)
* uc_is_property_quotation_mark: Properties as functions.
- (line 111)
+ (line 116)
* uc_is_property_radical: Properties as functions.
- (line 86)
+ (line 88)
* uc_is_property_regional_indicator: Properties as functions.
- (line 126)
+ (line 131)
* uc_is_property_sentence_terminal: Properties as functions.
- (line 112)
+ (line 117)
* uc_is_property_soft_dotted: Properties as functions.
(line 36)
* uc_is_property_space: Properties as functions.
- (line 102)
+ (line 105)
* uc_is_property_terminal_punctuation: Properties as functions.
- (line 113)
+ (line 118)
* uc_is_property_titlecase: Properties as functions.
(line 28)
* uc_is_property_unassigned_code_value: Properties as functions.
(line 20)
* uc_is_property_unified_ideograph: Properties as functions.
- (line 85)
+ (line 87)
* uc_is_property_uppercase: Properties as functions.
(line 24)
* uc_is_property_variation_selector: Properties as functions.
@@ -6713,7 +6853,7 @@ Index
* uc_is_property_xid_start: Properties as functions.
(line 44)
* uc_is_property_zero_width: Properties as functions.
- (line 101)
+ (line 104)
* uc_is_punct: Classifications like in ISO C.
(line 43)
* uc_is_script: Scripts. (line 30)
@@ -6737,9 +6877,9 @@ Index
* uc_mirror_char: Mirrored character. (line 13)
* uc_numeric_value: Numeric value. (line 21)
* uc_property_byname: Properties as objects.
- (line 138)
+ (line 142)
* uc_property_is_valid: Properties as objects.
- (line 153)
+ (line 157)
* uc_property_t: Properties as objects.
(line 8)
* uc_script: Scripts. (line 19)
@@ -6756,25 +6896,25 @@ Index
* uint16_t: unitypes.h. (line 9)
* uint32_t: unitypes.h. (line 10)
* uint8_t: unitypes.h. (line 8)
-* ulc_asnprintf: unistdio.h. (line 49)
-* ulc_asprintf: unistdio.h. (line 47)
+* ulc_asnprintf: unistdio.h. (line 50)
+* ulc_asprintf: unistdio.h. (line 48)
* ulc_casecmp: Case insensitive comparison.
- (line 60)
+ (line 63)
* ulc_casecoll: Case insensitive comparison.
- (line 106)
+ (line 109)
* ulc_casexfrm: Case insensitive comparison.
- (line 83)
-* ulc_fprintf: unistdio.h. (line 184)
+ (line 86)
+* ulc_fprintf: unistdio.h. (line 185)
* ulc_grapheme_breaks: Grapheme cluster breaks in a string.
- (line 49)
+ (line 53)
* ulc_possible_linebreaks: unilbrk.h. (line 52)
-* ulc_snprintf: unistdio.h. (line 44)
-* ulc_sprintf: unistdio.h. (line 42)
-* ulc_vasnprintf: unistdio.h. (line 61)
-* ulc_vasprintf: unistdio.h. (line 58)
-* ulc_vfprintf: unistdio.h. (line 185)
-* ulc_vsnprintf: unistdio.h. (line 55)
-* ulc_vsprintf: unistdio.h. (line 52)
+* ulc_snprintf: unistdio.h. (line 45)
+* ulc_sprintf: unistdio.h. (line 43)
+* ulc_vasnprintf: unistdio.h. (line 62)
+* ulc_vasprintf: unistdio.h. (line 59)
+* ulc_vfprintf: unistdio.h. (line 186)
+* ulc_vsnprintf: unistdio.h. (line 56)
+* ulc_vsprintf: unistdio.h. (line 53)
* ulc_width_linebreaks: unilbrk.h. (line 72)
* ulc_wordbreaks: Word breaks in a string.
(line 11)
@@ -6855,87 +6995,90 @@ Node: Unicode and i18n7937
Node: Locale encodings9599
Node: In-memory representation11864
Node: char * strings13862
-Node: Unicode strings19350
-Node: Conventions20533
-Node: unitypes.h22825
-Node: unistr.h23922
-Node: Elementary string checks24487
-Node: Elementary string conversions25109
-Node: Elementary string functions26987
-Node: Iterating27392
-Node: Creating Unicode strings30222
-Node: Copying Unicode strings31158
-Node: Comparing Unicode strings32771
-Node: Searching for a character34326
-Node: Counting characters35125
-Node: Elementary string functions with memory allocation35808
-Node: Elementary string functions on NUL terminated strings36430
-Node: Iterating over a NUL terminated Unicode string37029
-Node: Length39297
-Node: Copying a NUL terminated Unicode string40355
-Node: Comparing NUL terminated Unicode strings43459
-Node: Duplicating a NUL terminated Unicode string45555
-Node: Searching for a character in a NUL terminated Unicode string46324
-Node: Searching for a substring49088
-Node: Tokenizing50611
-Node: uniconv.h51484
-Node: unistdio.h59764
-Node: uniname.h68017
-Node: unictype.h69423
-Node: General category70351
-Node: Object oriented API71406
-Node: Bit mask API81247
-Node: Canonical combining class83542
-Node: Bidi class87777
-Node: Decimal digit value91572
-Node: Digit value92129
-Node: Numeric value92690
-Node: Mirrored character93592
-Node: Arabic shaping94285
-Node: Joining type94758
-Node: Joining group96908
-Node: Properties102720
-Node: Properties as objects103411
-Node: Properties as functions110892
-Node: Scripts117409
-Node: Blocks118814
-Node: ISO C and Java syntax120157
-Node: Classifications like in ISO C121875
-Node: uniwidth.h124687
-Node: unigbrk.h126733
-Node: Grapheme cluster breaks in a string128227
-Node: Grapheme cluster break property131246
-Node: uniwbrk.h133492
-Node: Word breaks in a string134030
-Node: Word break property135122
-Node: unilbrk.h136450
-Node: uninorm.h141002
-Node: Decomposition of characters141639
-Node: Composition of characters145420
-Node: Normalization of strings146133
-Node: Normalizing comparisons148306
-Node: Normalization of streams150804
-Node: unicase.h152929
-Node: Case mappings of characters153618
-Node: Case mappings of strings155767
-Node: Case mappings of substrings159406
-Node: Case insensitive comparison166676
-Node: Case detection172369
-Node: uniregex.h175683
-Node: Using the library175910
-Node: Installation176321
-Node: Compiler options176809
-Node: Include files178449
-Node: Autoconf macro179702
-Node: Reporting problems181343
-Node: More functionality182153
-Node: The wchar_t mess182605
-Node: The char32_t problem184955
-Node: Licenses187330
-Node: GNU GPL189803
-Node: GNU LGPL227552
-Node: GNU FDL236036
-Node: Index261347
+Node: Unicode strings19357
+Node: Conventions20540
+Ref: Conventions-Footnote-123718
+Node: unitypes.h23922
+Node: unistr.h25019
+Node: Elementary string checks25584
+Node: Elementary string conversions26206
+Node: Elementary string functions28084
+Node: Iterating28489
+Node: Creating Unicode strings31319
+Node: Copying Unicode strings32255
+Node: Comparing Unicode strings34331
+Node: Searching for a character35886
+Node: Counting characters36685
+Node: Elementary string functions with memory allocation37368
+Node: Elementary string functions on NUL terminated strings37990
+Node: Iterating over a NUL terminated Unicode string38589
+Node: Length40857
+Node: Copying a NUL terminated Unicode string41915
+Node: Comparing NUL terminated Unicode strings45019
+Node: Duplicating a NUL terminated Unicode string47162
+Node: Searching for a character in a NUL terminated Unicode string47931
+Node: Searching for a substring50695
+Node: Tokenizing52218
+Node: uniconv.h53091
+Node: unistdio.h61371
+Node: uniname.h69700
+Node: unictype.h71106
+Node: General category72055
+Node: Object oriented API73110
+Node: Bit mask API82951
+Node: Canonical combining class85246
+Node: Bidi class89481
+Node: Decimal digit value93276
+Node: Digit value93833
+Node: Numeric value94394
+Node: Mirrored character95296
+Node: Arabic shaping96510
+Node: Joining type96983
+Node: Joining group99133
+Node: Properties104945
+Node: Properties as objects105645
+Node: Properties as functions113379
+Node: Other attributes120183
+Node: Indic conjunct break120438
+Node: Scripts121729
+Node: Blocks123140
+Node: ISO C and Java syntax124483
+Node: Classifications like in ISO C126201
+Node: uniwidth.h129013
+Node: unigbrk.h131059
+Node: Grapheme cluster breaks in a string132553
+Node: Grapheme cluster break property135742
+Node: uniwbrk.h138068
+Node: Word breaks in a string138606
+Node: Word break property139698
+Node: unilbrk.h141026
+Node: uninorm.h145578
+Node: Decomposition of characters146215
+Node: Composition of characters149996
+Node: Normalization of strings150709
+Node: Normalizing comparisons152882
+Node: Normalization of streams155380
+Node: unicase.h157505
+Node: Case mappings of characters158194
+Node: Case mappings of strings160343
+Node: Case mappings of substrings163981
+Node: Case insensitive comparison171251
+Node: Case detection177089
+Node: uniregex.h180403
+Node: Using the library180630
+Node: Installation181041
+Node: Compiler options181529
+Node: Include files183169
+Node: Autoconf macro184809
+Node: Reporting problems186450
+Node: More functionality187260
+Node: The wchar_t mess187712
+Node: The char32_t problem190139
+Node: Licenses192514
+Node: GNU GPL194987
+Node: GNU LGPL232736
+Node: GNU FDL241220
+Node: Index266531

End Tag Table
diff --git a/doc/libunistring.texi b/doc/libunistring.texi
index 428e8c65..e55af90f 100644
--- a/doc/libunistring.texi
+++ b/doc/libunistring.texi
@@ -98,7 +98,7 @@ This manual is for GNU libunistring.
@ignore
@c This was: @copying but it triggers a makeinfo 4.13 bug
-Copyright (C) 2001-2022 Free Software Foundation, Inc.
+Copyright (C) 2001-2024 Free Software Foundation, Inc.
This manual is free documentation. It is dually licensed under the
GNU FDL and the GNU GPL. This means that you can redistribute this
@@ -129,7 +129,7 @@ A copy of the license is included in @ref{GNU GPL}.
@page
@vskip 0pt plus 1filll
@c @insertcopying
-Copyright (C) 2001-2022 Free Software Foundation, Inc.
+Copyright (C) 2001-2024 Free Software Foundation, Inc.
This manual is free documentation. It is dually licensed under the
GNU FDL and the GNU GPL. This means that you can redistribute this
@@ -609,7 +609,7 @@ number of screen columns of a string is requested.
gnulib has functions @func{mbschr} and @func{mbsrrchr} that are
like @posixfunc{strchr} and @posixfunc{strrchr}, but work in multibyte locales.
@item
-gnulib has a function @func{mbsstr}, like @posixfunc{strstr}, but works
+gnulib has a function @func{mbsstr} that is like @posixfunc{strstr}, but works
in multibyte locales.
@item
gnulib has functions @func{mbscspn}, @func{mbspbrk}, @func{mbsspn}
@@ -714,7 +714,10 @@ Variables of type @code{uint32_t *} denote UTF-32 strings, without byte
order mark. Their units are 4-byte words.
Argument pairs @code{(@var{s}, @var{n})} denote a string
-@code{@var{s}[0..@var{n}-1]} with exactly @var{n} units.
+@code{@var{s}[0..@var{n}-1]} with exactly @var{n} units.@footnote{A NUL
+unit as terminator is not needed, since the number of units is given by
+@var{n}. If some of the units of the string are NUL, they are just
+regular units; they are not interpreted as terminators.}
All functions with prefix @samp{ulc_} operate on C strings in locale
encoding.
@@ -754,6 +757,27 @@ is returned. In both cases, @code{*@var{lengthp}} is set to the
length (number of units) of the returned string. In case of error,
NULL is returned and @code{errno} is set.
+To invoke such a function:
+@itemize @bullet
+@item
+First ask yourself whether you want to accept the overhead of a
+@code{malloc} invocation even for a small-sized result.
+If yes, pass NULL as @var{resultbuf}.
+If no, allocate an array of units on the stack, typically between 50 and
+4000 bytes large; pass this array as @var{resultbuf}; and initialize
+@code{*@var{lengthp}} to the number of units of this array.
+@item
+Upon return from such a function, look at the return value:
+NULL means an error; look at the value of @code{errno} in this case.
+Otherwise, the return value is the result, with @code{*@var{lengthp}}
+units. Note that the function has @emph{not} added an extra NUL
+character at the end.
+@item
+Finally, do memory management. You know that the result was
+@code{malloc}-allocated if it is @code{!= NULL} and
+@code{!= @var{resultbuf}}.
+@end itemize
+
@include unitypes.texi
@include unistr.texi
@include uniconv.texi
@@ -840,14 +864,16 @@ version number of the libunistring library.
@deftypevr Macro int _LIBUNISTRING_VERSION
This constant contains the version of libunistring that is being used
-at compile time. It encodes the major and minor parts of the version
-number only. These parts are encoded in the form @code{(major<<8) + minor}.
+at compile time.
+It encodes the major, minor, and subminor parts of the version number.
+These parts are encoded in the form @code{(major<<16) + (minor<<8) + subminor}.
@end deftypevr
@deftypevr Constant int _libunistring_version
This constant contains the version of libunistring that is being used
-at run time. It encodes the major and minor parts of the version
-number only. These parts are encoded in the form @code{(major<<8) + minor}.
+at run time.
+It encodes the major, minor, and subminor parts of the version number.
+These parts are encoded in the form @code{(major<<16) + (minor<<8) + subminor}.
@end deftypevr
It is possible that @code{_libunistring_version} is greater than
@@ -856,6 +882,15 @@ It is possible that @code{_libunistring_version} is greater than
backward-compatible version has been installed after your program
that uses @code{libunistring} was installed.
+@code{<unistring/version.h>} also contains:
+
+@deftypevr Constant int _libunistring_unicode_version
+This constant contains the version of the Unicode standard that is
+implemented by libunistring.
+It encodes the major and minor parts of the version number only.
+These parts are encoded in the form @code{(major<<8) + minor}.
+@end deftypevr
+
@node Autoconf macro
@section Autoconf macro
diff --git a/doc/libunistring_1.html b/doc/libunistring_1.html
index c5bc673b..06fdb6e2 100644
--- a/doc/libunistring_1.html
+++ b/doc/libunistring_1.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -289,7 +289,7 @@ a significant amount of text processing, or when the program has multiple
threads operating on the same data but in different locales.
</li><li>
As &lsquo;<samp>wchar_t *</samp>&rsquo;, a.k.a. &ldquo;wide strings&rdquo;. This approach is misguided,
-see <a href="libunistring_18.html#SEC81">The <code>wchar_t</code> mess</a>.
+see <a href="libunistring_18.html#SEC83">The <code>wchar_t</code> mess</a>.
</li></ul>
<p>Of course, a &lsquo;<samp>char *</samp>&rsquo; string can, in some cases, be encoded in UTF-8.
@@ -387,7 +387,7 @@ number of screen columns of a string is requested.
gnulib has functions <code>mbschr</code> and <code>mbsrrchr</code> that are
like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/strchr.html"><code>strchr</code></a> and <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/strrchr.html"><code>strrchr</code></a>, but work in multibyte locales.
</li><li>
-gnulib has a function <code>mbsstr</code>, like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/strstr.html"><code>strstr</code></a>, but works
+gnulib has a function <code>mbsstr</code> that is like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/strstr.html"><code>strstr</code></a>, but works
in multibyte locales.
</li><li>
gnulib has functions <code>mbscspn</code>, <code>mbspbrk</code>, <code>mbsspn</code>
@@ -437,7 +437,7 @@ to view case transformations as functions that operates on strings,
rather than on characters.
</li></ol>
-<p>This is implemented in this library, through the functions declared in <code>&lt;unicase.h&gt;</code>, see <a href="libunistring_14.html#SEC67">Case mappings <code>&lt;unicase.h&gt;</code></a>.
+<p>This is implemented in this library, through the functions declared in <code>&lt;unicase.h&gt;</code>, see <a href="libunistring_14.html#SEC69">Case mappings <code>&lt;unicase.h&gt;</code></a>.
</p>
<hr size="6">
<a name="Unicode-strings"></a>
@@ -486,12 +486,12 @@ zero-valued unit used as &ldquo;end marker&rdquo;.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_10.html b/doc/libunistring_10.html
index 911fd297..75a7888a 100644
--- a/doc/libunistring_10.html
+++ b/doc/libunistring_10.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_9.html#SEC53" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_11.html#SEC57" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_9.html#SEC55" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_11.html#SEC59" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="unigbrk_002eh"></a>
-<a name="SEC54"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC54">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a> </h1>
+<a name="SEC56"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC56">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a> </h1>
<p>This include file declares functions for determining where in a string
&ldquo;grapheme clusters&rdquo; start and end. A &ldquo;grapheme cluster&rdquo; is an
@@ -85,21 +85,21 @@ clusters.
<hr size="6">
<a name="Grapheme-cluster-breaks-in-a-string"></a>
-<a name="SEC55"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC55">10.1 Grapheme cluster breaks in a string</a> </h2>
+<a name="SEC57"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC57">10.1 Grapheme cluster breaks in a string</a> </h2>
<p>The following functions find a single boundary between grapheme
clusters in a string.
</p>
<dl>
<dt><u>Function:</u> void <b>u8_grapheme_next</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, const&nbsp;uint8_t&nbsp;*<var>end</var>)</i>
-<a name="IDX769"></a>
+<a name="IDX787"></a>
</dt>
<dt><u>Function:</u> void <b>u16_grapheme_next</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, const&nbsp;uint16_t&nbsp;*<var>end</var>)</i>
-<a name="IDX770"></a>
+<a name="IDX788"></a>
</dt>
<dt><u>Function:</u> void <b>u32_grapheme_next</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, const&nbsp;uint32_t&nbsp;*<var>end</var>)</i>
-<a name="IDX771"></a>
+<a name="IDX789"></a>
</dt>
<dd><p>Returns the start of the next grapheme cluster following <var>s</var>,
or <var>end</var> if no grapheme cluster break is encountered before it.
@@ -107,19 +107,20 @@ Returns NULL if and only if <code><var>s</var> == <var>end</var></code>.
</p>
<p>Note that these functions do not handle the case when a character
outside of the range between <var>s</var> and <var>end</var> is needed to
-determine the boundary. Use <code>_grapheme_breaks</code> functions for such
-cases.
+determine the boundary.
+This is the case in particular with syllables in Indic scripts or emojis.
+Use <code>_grapheme_breaks</code> functions for such cases.
</p></dd></dl>
<dl>
<dt><u>Function:</u> void <b>u8_grapheme_prev</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, const&nbsp;uint8_t&nbsp;*<var>start</var>)</i>
-<a name="IDX772"></a>
+<a name="IDX790"></a>
</dt>
<dt><u>Function:</u> void <b>u16_grapheme_prev</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, const&nbsp;uint16_t&nbsp;*<var>start</var>)</i>
-<a name="IDX773"></a>
+<a name="IDX791"></a>
</dt>
<dt><u>Function:</u> void <b>u32_grapheme_prev</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, const&nbsp;uint32_t&nbsp;*<var>start</var>)</i>
-<a name="IDX774"></a>
+<a name="IDX792"></a>
</dt>
<dd><p>Returns the start of the grapheme cluster preceding <var>s</var>, or
<var>start</var> if no grapheme cluster break is encountered before it.
@@ -127,8 +128,9 @@ Returns NULL if and only if <code><var>s</var> == <var>start</var></code>.
</p>
<p>Note that these functions do not handle the case when a character
outside of the range between <var>start</var> and <var>s</var> is needed to
-determine the boundary. Use <code>_grapheme_breaks</code> functions for such
-cases.
+determine the boundary.
+This is the case in particular with syllables in Indic scripts or emojis.
+Use <code>_grapheme_breaks</code> functions for such cases.
</p>
<p>Note also that these functions work only on well-formed Unicode strings.
</p></dd></dl>
@@ -138,19 +140,19 @@ boundaries in a string.
</p>
<dl>
<dt><u>Function:</u> void <b>u8_grapheme_breaks</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX775"></a>
+<a name="IDX793"></a>
</dt>
<dt><u>Function:</u> void <b>u16_grapheme_breaks</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX776"></a>
+<a name="IDX794"></a>
</dt>
<dt><u>Function:</u> void <b>u32_grapheme_breaks</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX777"></a>
+<a name="IDX795"></a>
</dt>
<dt><u>Function:</u> void <b>ulc_grapheme_breaks</b><i> (const&nbsp;char&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX778"></a>
+<a name="IDX796"></a>
</dt>
<dt><u>Function:</u> void <b>uc_grapheme_breaks</b><i> (const&nbsp;ucs_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX779"></a>
+<a name="IDX797"></a>
</dt>
<dd><p>Determines the grapheme cluster break points in <var>s</var>, an array of
<var>n</var> units, and stores the result at <code><var>p</var>[0..<var>nx</var>-1]</code>.
@@ -177,8 +179,8 @@ characters.
<hr size="6">
<a name="Grapheme-cluster-break-property"></a>
-<a name="SEC56"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC56">10.2 Grapheme cluster break property</a> </h2>
+<a name="SEC58"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC58">10.2 Grapheme cluster break property</a> </h2>
<p>This is a more low-level API. The grapheme cluster break property is a
property defined in Unicode Standard Annex #29, section &ldquo;Grapheme Cluster
@@ -191,58 +193,58 @@ property. More values may be added in the future.
</p>
<dl>
<dt><u>Constant:</u> int <b>GBP_OTHER</b>
-<a name="IDX780"></a>
+<a name="IDX798"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_CR</b>
-<a name="IDX781"></a>
+<a name="IDX799"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_LF</b>
-<a name="IDX782"></a>
+<a name="IDX800"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_CONTROL</b>
-<a name="IDX783"></a>
+<a name="IDX801"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_EXTEND</b>
-<a name="IDX784"></a>
+<a name="IDX802"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_PREPEND</b>
-<a name="IDX785"></a>
+<a name="IDX803"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_SPACINGMARK</b>
-<a name="IDX786"></a>
+<a name="IDX804"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_L</b>
-<a name="IDX787"></a>
+<a name="IDX805"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_V</b>
-<a name="IDX788"></a>
+<a name="IDX806"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_T</b>
-<a name="IDX789"></a>
+<a name="IDX807"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_LV</b>
-<a name="IDX790"></a>
+<a name="IDX808"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_LVT</b>
-<a name="IDX791"></a>
+<a name="IDX809"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_RI</b>
-<a name="IDX792"></a>
+<a name="IDX810"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_ZWJ</b>
-<a name="IDX793"></a>
+<a name="IDX811"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_EB</b>
-<a name="IDX794"></a>
+<a name="IDX812"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_EM</b>
-<a name="IDX795"></a>
+<a name="IDX813"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_GAZ</b>
-<a name="IDX796"></a>
+<a name="IDX814"></a>
</dt>
<dt><u>Constant:</u> int <b>GBP_EBG</b>
-<a name="IDX797"></a>
+<a name="IDX815"></a>
</dt>
</dl>
@@ -251,7 +253,7 @@ character.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_graphemeclusterbreak_property</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX798"></a>
+<a name="IDX816"></a>
</dt>
<dd><p>Returns the Grapheme_Cluster_Break property of a Unicode character.
</p></dd></dl>
@@ -262,7 +264,7 @@ the higher-level functions in the previous section are directly based.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_grapheme_break</b><i> (ucs4_t&nbsp;<var>a</var>, ucs4_t&nbsp;<var>b</var>)</i>
-<a name="IDX799"></a>
+<a name="IDX817"></a>
</dt>
<dd><p>Returns true if there is an grapheme cluster boundary between Unicode
characters <var>a</var> and <var>b</var>.
@@ -276,13 +278,14 @@ described in the Unicode standard, because the standard says that they
are preferred.
</p>
<p>Note that this function does not handle the case when three or more
-consecutive characters are needed to determine the boundary. Use
-<code>uc_grapheme_breaks</code> for such cases.
+consecutive characters are needed to determine the boundary.
+This is the case in particular with syllables in Indic scripts or emojis.
+Use <code>uc_grapheme_breaks</code> for such cases.
</p></dd></dl>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC54" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_11.html#SEC57" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC56" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_11.html#SEC59" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -290,12 +293,12 @@ consecutive characters are needed to determine the boundary. Use
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_11.html b/doc/libunistring_11.html
index 6b65729b..103d51d9 100644
--- a/doc/libunistring_11.html
+++ b/doc/libunistring_11.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_10.html#SEC54" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_12.html#SEC60" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_10.html#SEC56" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_12.html#SEC62" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="uniwbrk_002eh"></a>
-<a name="SEC57"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC57">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a> </h1>
+<a name="SEC59"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC59">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a> </h1>
<p>This include file declares functions for determining where in a string
&ldquo;words&rdquo; start and end. Here &ldquo;words&rdquo; are not necessarily the same as
@@ -69,23 +69,23 @@ operations.
<hr size="6">
<a name="Word-breaks-in-a-string"></a>
-<a name="SEC58"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC58">11.1 Word breaks in a string</a> </h2>
+<a name="SEC60"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC60">11.1 Word breaks in a string</a> </h2>
<p>The following functions determine the word breaks in a string.
</p>
<dl>
<dt><u>Function:</u> void <b>u8_wordbreaks</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX800"></a>
+<a name="IDX818"></a>
</dt>
<dt><u>Function:</u> void <b>u16_wordbreaks</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX801"></a>
+<a name="IDX819"></a>
</dt>
<dt><u>Function:</u> void <b>u32_wordbreaks</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX802"></a>
+<a name="IDX820"></a>
</dt>
<dt><u>Function:</u> void <b>ulc_wordbreaks</b><i> (const&nbsp;char&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX803"></a>
+<a name="IDX821"></a>
</dt>
<dd><p>Determines the word break points in <var>s</var>, an array of <var>n</var> units, and
stores the result at <code><var>p</var>[0..<var>n</var>-1]</code>.
@@ -106,8 +106,8 @@ word break to be present at the beginning of the string (before
<hr size="6">
<a name="Word-break-property"></a>
-<a name="SEC59"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC59">11.2 Word break property</a> </h2>
+<a name="SEC61"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC61">11.2 Word break property</a> </h2>
<p>This is a more low-level API. The word break property is a property defined
in Unicode Standard Annex #29, section &ldquo;Word Boundaries&rdquo;, see
@@ -119,70 +119,70 @@ may be added in the future.
</p>
<dl>
<dt><u>Constant:</u> int <b>WBP_OTHER</b>
-<a name="IDX804"></a>
+<a name="IDX822"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_CR</b>
-<a name="IDX805"></a>
+<a name="IDX823"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_LF</b>
-<a name="IDX806"></a>
+<a name="IDX824"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_NEWLINE</b>
-<a name="IDX807"></a>
+<a name="IDX825"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_EXTEND</b>
-<a name="IDX808"></a>
+<a name="IDX826"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_FORMAT</b>
-<a name="IDX809"></a>
+<a name="IDX827"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_KATAKANA</b>
-<a name="IDX810"></a>
+<a name="IDX828"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_ALETTER</b>
-<a name="IDX811"></a>
+<a name="IDX829"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_MIDNUMLET</b>
-<a name="IDX812"></a>
+<a name="IDX830"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_MIDLETTER</b>
-<a name="IDX813"></a>
+<a name="IDX831"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_MIDNUM</b>
-<a name="IDX814"></a>
+<a name="IDX832"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_NUMERIC</b>
-<a name="IDX815"></a>
+<a name="IDX833"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_EXTENDNUMLET</b>
-<a name="IDX816"></a>
+<a name="IDX834"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_RI</b>
-<a name="IDX817"></a>
+<a name="IDX835"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_DQ</b>
-<a name="IDX818"></a>
+<a name="IDX836"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_SQ</b>
-<a name="IDX819"></a>
+<a name="IDX837"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_HL</b>
-<a name="IDX820"></a>
+<a name="IDX838"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_ZWJ</b>
-<a name="IDX821"></a>
+<a name="IDX839"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_EB</b>
-<a name="IDX822"></a>
+<a name="IDX840"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_EM</b>
-<a name="IDX823"></a>
+<a name="IDX841"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_GAZ</b>
-<a name="IDX824"></a>
+<a name="IDX842"></a>
</dt>
<dt><u>Constant:</u> int <b>WBP_EBG</b>
-<a name="IDX825"></a>
+<a name="IDX843"></a>
</dt>
</dl>
@@ -190,14 +190,14 @@ may be added in the future.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_wordbreak_property</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX826"></a>
+<a name="IDX844"></a>
</dt>
<dd><p>Returns the Word_Break property of a Unicode character.
</p></dd></dl>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC57" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_12.html#SEC60" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC59" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_12.html#SEC62" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -205,12 +205,12 @@ may be added in the future.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_12.html b/doc/libunistring_12.html
index 07d78326..646f636c 100644
--- a/doc/libunistring_12.html
+++ b/doc/libunistring_12.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_11.html#SEC57" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_13.html#SEC61" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_11.html#SEC59" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_13.html#SEC63" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="unilbrk_002eh"></a>
-<a name="SEC60"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a> </h1>
+<a name="SEC62"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a> </h1>
<p>This include file declares functions for determining where in a string
line breaks could or should be introduced, in order to make the displayed
@@ -74,14 +74,14 @@ following meanings:
</p>
<dl>
<dt><u>Constant:</u> int <b>UC_BREAK_MANDATORY</b>
-<a name="IDX827"></a>
+<a name="IDX845"></a>
</dt>
<dd><p>This value indicates that <code><var>s</var>[<var>i</var>]</code> is a line break character.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BREAK_CR_BEFORE_LF</b>
-<a name="IDX828"></a>
+<a name="IDX846"></a>
</dt>
<dd><p>This value is a variant of <code>UC_BREAK_MANDATORY</code>. It indicates that
<code><var>s</var>[<var>i</var>]</code> is a CR character and that <code><var>s</var>[<var>i+1</var>]</code>
@@ -90,7 +90,7 @@ is a LF character.
<dl>
<dt><u>Constant:</u> int <b>UC_BREAK_POSSIBLE</b>
-<a name="IDX829"></a>
+<a name="IDX847"></a>
</dt>
<dd><p>This value indicates that a line break may be inserted between
<code><var>s</var>[<var>i</var>-1]</code> and <code><var>s</var>[<var>i</var>]</code>.
@@ -98,7 +98,7 @@ is a LF character.
<dl>
<dt><u>Constant:</u> int <b>UC_BREAK_HYPHENATION</b>
-<a name="IDX830"></a>
+<a name="IDX848"></a>
</dt>
<dd><p>This value indicates that a hyphen and a line break may be inserted between
<code><var>s</var>[<var>i</var>-1]</code> and <code><var>s</var>[<var>i</var>]</code>. But beware of language
@@ -107,7 +107,7 @@ dependent hyphenation rules.
<dl>
<dt><u>Constant:</u> int <b>UC_BREAK_PROHIBITED</b>
-<a name="IDX831"></a>
+<a name="IDX849"></a>
</dt>
<dd><p>This value indicates that <code><var>s</var>[<var>i</var>-1]</code> and <code><var>s</var>[<var>i</var>]</code>
must not be separated.
@@ -115,7 +115,7 @@ must not be separated.
<dl>
<dt><u>Constant:</u> int <b>UC_BREAK_UNDEFINED</b>
-<a name="IDX832"></a>
+<a name="IDX850"></a>
</dt>
<dd><p>This value is not used as a return value; rather, in the overriding argument of
the <code>u*_width_linebreaks</code> functions, it indicates the absence of an
@@ -127,16 +127,16 @@ possible.
</p>
<dl>
<dt><u>Function:</u> void <b>u8_possible_linebreaks</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX833"></a>
+<a name="IDX851"></a>
</dt>
<dt><u>Function:</u> void <b>u16_possible_linebreaks</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX834"></a>
+<a name="IDX852"></a>
</dt>
<dt><u>Function:</u> void <b>u32_possible_linebreaks</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX835"></a>
+<a name="IDX853"></a>
</dt>
<dt><u>Function:</u> void <b>ulc_possible_linebreaks</b><i> (const&nbsp;char&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX836"></a>
+<a name="IDX854"></a>
</dt>
<dd><p>Determines the line break points in <var>s</var>, and stores the result at
<code><var>p</var>[0..<var>n</var>-1]</code>. Every <code><var>p</var>[<var>i</var>]</code> is assigned one of
@@ -151,19 +151,19 @@ non-proportional fonts.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_width_linebreaks</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, int&nbsp;<var>width</var>, int&nbsp;<var>start_column</var>, int&nbsp;<var>at_end_columns</var>, const&nbsp;char&nbsp;*<var>override</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX837"></a>
+<a name="IDX855"></a>
</dt>
<dt><u>Function:</u> int <b>u16_width_linebreaks</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, int&nbsp;<var>width</var>, int&nbsp;<var>start_column</var>, int&nbsp;<var>at_end_columns</var>, const&nbsp;char&nbsp;*<var>override</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX838"></a>
+<a name="IDX856"></a>
</dt>
<dt><u>Function:</u> int <b>u32_width_linebreaks</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, int&nbsp;<var>width</var>, int&nbsp;<var>start_column</var>, int&nbsp;<var>at_end_columns</var>, const&nbsp;char&nbsp;*<var>override</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX839"></a>
+<a name="IDX857"></a>
</dt>
<dt><u>Function:</u> int <b>ulc_width_linebreaks</b><i> (const&nbsp;char&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, int&nbsp;<var>width</var>, int&nbsp;<var>start_column</var>, int&nbsp;<var>at_end_columns</var>, const&nbsp;char&nbsp;*<var>override</var>, const&nbsp;char&nbsp;*<var>encoding</var>, char&nbsp;*<var>p</var>)</i>
-<a name="IDX840"></a>
+<a name="IDX858"></a>
</dt>
<dd><p>Chooses the best line breaks, assuming that every character occupies a width
-given by the <code>uc_width</code> function (see <a href="libunistring_9.html#SEC53">Display width <code>&lt;uniwidth.h&gt;</code></a>).
+given by the <code>uc_width</code> function (see <a href="libunistring_9.html#SEC55">Display width <code>&lt;uniwidth.h&gt;</code></a>).
</p>
<p>The string is <code><var>s</var>[0..<var>n</var>-1]</code>.
</p>
@@ -188,8 +188,8 @@ that a line break <em>should</em> be inserted.
</p></dd></dl>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_11.html#SEC57" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_13.html#SEC61" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_11.html#SEC59" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_13.html#SEC63" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -197,12 +197,12 @@ that a line break <em>should</em> be inserted.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_13.html b/doc/libunistring_13.html
index 03773a77..a7a009af 100644
--- a/doc/libunistring_13.html
+++ b/doc/libunistring_13.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_12.html#SEC60" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_14.html#SEC67" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_12.html#SEC62" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_14.html#SEC69" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="uninorm_002eh"></a>
-<a name="SEC61"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC61">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a> </h1>
+<a name="SEC63"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC63">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a> </h1>
<p>This include file defines functions for transforming Unicode strings to one
of the four normal forms, known as NFC, NFD, NKFC, NFKD. These
@@ -68,29 +68,29 @@ of Unicode characters.
<hr size="6">
<a name="Decomposition-of-characters"></a>
-<a name="SEC62"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC62">13.1 Decomposition of Unicode characters</a> </h2>
+<a name="SEC64"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC64">13.1 Decomposition of Unicode characters</a> </h2>
<p>The following enumerated values are the possible types of decomposition of a
Unicode character.
</p>
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_CANONICAL</b>
-<a name="IDX841"></a>
+<a name="IDX859"></a>
</dt>
<dd><p>Denotes canonical decomposition.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_FONT</b>
-<a name="IDX842"></a>
+<a name="IDX860"></a>
</dt>
<dd><p>UCD marker: <code>&lt;font&gt;</code>. Denotes a font variant (e.g. a blackletter form).
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_NOBREAK</b>
-<a name="IDX843"></a>
+<a name="IDX861"></a>
</dt>
<dd><p>UCD marker: <code>&lt;noBreak&gt;</code>.
Denotes a no-break version of a space or hyphen.
@@ -98,7 +98,7 @@ Denotes a no-break version of a space or hyphen.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_INITIAL</b>
-<a name="IDX844"></a>
+<a name="IDX862"></a>
</dt>
<dd><p>UCD marker: <code>&lt;initial&gt;</code>.
Denotes an initial presentation form (Arabic).
@@ -106,7 +106,7 @@ Denotes an initial presentation form (Arabic).
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_MEDIAL</b>
-<a name="IDX845"></a>
+<a name="IDX863"></a>
</dt>
<dd><p>UCD marker: <code>&lt;medial&gt;</code>.
Denotes a medial presentation form (Arabic).
@@ -114,7 +114,7 @@ Denotes a medial presentation form (Arabic).
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_FINAL</b>
-<a name="IDX846"></a>
+<a name="IDX864"></a>
</dt>
<dd><p>UCD marker: <code>&lt;final&gt;</code>.
Denotes a final presentation form (Arabic).
@@ -122,7 +122,7 @@ Denotes a final presentation form (Arabic).
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_ISOLATED</b>
-<a name="IDX847"></a>
+<a name="IDX865"></a>
</dt>
<dd><p>UCD marker: <code>&lt;isolated&gt;</code>.
Denotes an isolated presentation form (Arabic).
@@ -130,7 +130,7 @@ Denotes an isolated presentation form (Arabic).
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_CIRCLE</b>
-<a name="IDX848"></a>
+<a name="IDX866"></a>
</dt>
<dd><p>UCD marker: <code>&lt;circle&gt;</code>.
Denotes an encircled form.
@@ -138,7 +138,7 @@ Denotes an encircled form.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_SUPER</b>
-<a name="IDX849"></a>
+<a name="IDX867"></a>
</dt>
<dd><p>UCD marker: <code>&lt;super&gt;</code>.
Denotes a superscript form.
@@ -146,7 +146,7 @@ Denotes a superscript form.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_SUB</b>
-<a name="IDX850"></a>
+<a name="IDX868"></a>
</dt>
<dd><p>UCD marker: <code>&lt;sub&gt;</code>.
Denotes a subscript form.
@@ -154,7 +154,7 @@ Denotes a subscript form.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_VERTICAL</b>
-<a name="IDX851"></a>
+<a name="IDX869"></a>
</dt>
<dd><p>UCD marker: <code>&lt;vertical&gt;</code>.
Denotes a vertical layout presentation form.
@@ -162,7 +162,7 @@ Denotes a vertical layout presentation form.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_WIDE</b>
-<a name="IDX852"></a>
+<a name="IDX870"></a>
</dt>
<dd><p>UCD marker: <code>&lt;wide&gt;</code>.
Denotes a wide (or zenkaku) compatibility character.
@@ -170,7 +170,7 @@ Denotes a wide (or zenkaku) compatibility character.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_NARROW</b>
-<a name="IDX853"></a>
+<a name="IDX871"></a>
</dt>
<dd><p>UCD marker: <code>&lt;narrow&gt;</code>.
Denotes a narrow (or hankaku) compatibility character.
@@ -178,7 +178,7 @@ Denotes a narrow (or hankaku) compatibility character.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_SMALL</b>
-<a name="IDX854"></a>
+<a name="IDX872"></a>
</dt>
<dd><p>UCD marker: <code>&lt;small&gt;</code>.
Denotes a small variant form (CNS compatibility).
@@ -186,7 +186,7 @@ Denotes a small variant form (CNS compatibility).
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_SQUARE</b>
-<a name="IDX855"></a>
+<a name="IDX873"></a>
</dt>
<dd><p>UCD marker: <code>&lt;square&gt;</code>.
Denotes a CJK squared font variant.
@@ -194,7 +194,7 @@ Denotes a CJK squared font variant.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_FRACTION</b>
-<a name="IDX856"></a>
+<a name="IDX874"></a>
</dt>
<dd><p>UCD marker: <code>&lt;fraction&gt;</code>.
Denotes a vulgar fraction form.
@@ -202,7 +202,7 @@ Denotes a vulgar fraction form.
<dl>
<dt><u>Constant:</u> int <b>UC_DECOMP_COMPAT</b>
-<a name="IDX857"></a>
+<a name="IDX875"></a>
</dt>
<dd><p>UCD marker: <code>&lt;compat&gt;</code>.
Denotes an otherwise unspecified compatibility character.
@@ -213,7 +213,7 @@ Unicode character.
</p>
<dl>
<dt><u>Macro:</u> unsigned int <b>UC_DECOMPOSITION_MAX_LENGTH</b>
-<a name="IDX858"></a>
+<a name="IDX876"></a>
</dt>
<dd><p>This macro expands to a constant that is the required size of buffer passed to
the <code>uc_decomposition</code> and <code>uc_canonical_decomposition</code> functions.
@@ -223,7 +223,7 @@ the <code>uc_decomposition</code> and <code>uc_canonical_decomposition</code> fu
</p>
<dl>
<dt><u>Function:</u> int <b>uc_decomposition</b><i> (ucs4_t&nbsp;<var>uc</var>, int&nbsp;*<var>decomp_tag</var>, ucs4_t&nbsp;*<var>decomposition</var>)</i>
-<a name="IDX859"></a>
+<a name="IDX877"></a>
</dt>
<dd><p>Returns the character decomposition mapping of the Unicode character <var>uc</var>.
<var>decomposition</var> must point to an array of at least
@@ -236,7 +236,7 @@ returned.
<dl>
<dt><u>Function:</u> int <b>uc_canonical_decomposition</b><i> (ucs4_t&nbsp;<var>uc</var>, ucs4_t&nbsp;*<var>decomposition</var>)</i>
-<a name="IDX860"></a>
+<a name="IDX878"></a>
</dt>
<dd><p>Returns the canonical character decomposition mapping of the Unicode character
<var>uc</var>. <var>decomposition</var> must point to an array of at least
@@ -253,15 +253,15 @@ function <code>u*_normalize</code> with argument <code>UNINORM_NFD</code> instea
<hr size="6">
<a name="Composition-of-characters"></a>
-<a name="SEC63"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC63">13.2 Composition of Unicode characters</a> </h2>
+<a name="SEC65"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC65">13.2 Composition of Unicode characters</a> </h2>
<p>The following function composes a Unicode character from two Unicode
characters.
</p>
<dl>
<dt><u>Function:</u> ucs4_t <b>uc_composition</b><i> (ucs4_t&nbsp;<var>uc1</var>, ucs4_t&nbsp;<var>uc2</var>)</i>
-<a name="IDX861"></a>
+<a name="IDX879"></a>
</dt>
<dd><p>Attempts to combine the Unicode characters <var>uc1</var>, <var>uc2</var>.
<var>uc1</var> is known to have canonical combining class 0.
@@ -275,15 +275,15 @@ file &lsquo;<tt>CompositionExclusions.txt</tt>&rsquo; for details.
<hr size="6">
<a name="Normalization-of-strings"></a>
-<a name="SEC64"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC64">13.3 Normalization of strings</a> </h2>
+<a name="SEC66"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC66">13.3 Normalization of strings</a> </h2>
<p>The Unicode standard defines four normalization forms for Unicode strings.
The following type is used to denote a normalization form.
</p>
<dl>
<dt><u>Type:</u> <b>uninorm_t</b>
-<a name="IDX862"></a>
+<a name="IDX880"></a>
</dt>
<dd><p>An object of type <code>uninorm_t</code> denotes a Unicode normalization form.
This is a scalar type; its values can be compared with <code>==</code>.
@@ -293,28 +293,28 @@ This is a scalar type; its values can be compared with <code>==</code>.
</p>
<dl>
<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFD</b>
-<a name="IDX863"></a>
+<a name="IDX881"></a>
</dt>
<dd><p>Denotes Normalization form D: canonical decomposition.
</p></dd></dl>
<dl>
<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFC</b>
-<a name="IDX864"></a>
+<a name="IDX882"></a>
</dt>
<dd><p>Normalization form C: canonical decomposition, then canonical composition.
</p></dd></dl>
<dl>
<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFKD</b>
-<a name="IDX865"></a>
+<a name="IDX883"></a>
</dt>
<dd><p>Normalization form KD: compatibility decomposition.
</p></dd></dl>
<dl>
<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFKC</b>
-<a name="IDX866"></a>
+<a name="IDX884"></a>
</dt>
<dd><p>Normalization form KC: compatibility decomposition, then canonical composition.
</p></dd></dl>
@@ -323,21 +323,21 @@ This is a scalar type; its values can be compared with <code>==</code>.
</p>
<dl>
<dt><u>Function:</u> bool <b>uninorm_is_compat_decomposing</b><i> (uninorm_t&nbsp;<var>nf</var>)</i>
-<a name="IDX867"></a>
+<a name="IDX885"></a>
</dt>
<dd><p>Tests whether the normalization form <var>nf</var> does compatibility decomposition.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>uninorm_is_composing</b><i> (uninorm_t&nbsp;<var>nf</var>)</i>
-<a name="IDX868"></a>
+<a name="IDX886"></a>
</dt>
<dd><p>Tests whether the normalization form <var>nf</var> includes canonical composition.
</p></dd></dl>
<dl>
<dt><u>Function:</u> uninorm_t <b>uninorm_decomposing_form</b><i> (uninorm_t&nbsp;<var>nf</var>)</i>
-<a name="IDX869"></a>
+<a name="IDX887"></a>
</dt>
<dd><p>Returns the decomposing variant of the normalization form <var>nf</var>.
This maps NFC,NFD → NFD and NFKC,NFKD → NFKD.
@@ -347,13 +347,13 @@ This maps NFC,NFD → NFD and NFKC,NFKD → NFKD.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_normalize</b><i> (uninorm_t&nbsp;<var>nf</var>, const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX870"></a>
+<a name="IDX888"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_normalize</b><i> (uninorm_t&nbsp;<var>nf</var>, const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX871"></a>
+<a name="IDX889"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_normalize</b><i> (uninorm_t&nbsp;<var>nf</var>, const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX872"></a>
+<a name="IDX890"></a>
</dt>
<dd><p>Returns the specified normalization form of a string.
</p>
@@ -363,21 +363,21 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<hr size="6">
<a name="Normalizing-comparisons"></a>
-<a name="SEC65"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC65">13.4 Normalizing comparisons</a> </h2>
+<a name="SEC67"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC67">13.4 Normalizing comparisons</a> </h2>
<p>The following functions compare Unicode string, ignoring differences in
normalization.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_normcmp</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX873"></a>
+<a name="IDX891"></a>
</dt>
<dt><u>Function:</u> int <b>u16_normcmp</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX874"></a>
+<a name="IDX892"></a>
</dt>
<dt><u>Function:</u> int <b>u32_normcmp</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX875"></a>
+<a name="IDX893"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in normalization.
</p>
@@ -388,17 +388,17 @@ normalization.
Upon failure, returns -1 with <code>errno</code> set.
</p></dd></dl>
-<a name="IDX876"></a>
-<a name="IDX877"></a>
+<a name="IDX894"></a>
+<a name="IDX895"></a>
<dl>
<dt><u>Function:</u> char * <b>u8_normxfrm</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, uninorm_t&nbsp;<var>nf</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX878"></a>
+<a name="IDX896"></a>
</dt>
<dt><u>Function:</u> char * <b>u16_normxfrm</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, uninorm_t&nbsp;<var>nf</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX879"></a>
+<a name="IDX897"></a>
</dt>
<dt><u>Function:</u> char * <b>u32_normxfrm</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, uninorm_t&nbsp;<var>nf</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX880"></a>
+<a name="IDX898"></a>
</dt>
<dd><p>Converts the string <var>s</var> of length <var>n</var> to a NUL-terminated byte
sequence, in such a way that comparing <code>u8_normxfrm (<var>s1</var>)</code> and
@@ -413,13 +413,13 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<dl>
<dt><u>Function:</u> int <b>u8_normcoll</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX881"></a>
+<a name="IDX899"></a>
</dt>
<dt><u>Function:</u> int <b>u16_normcoll</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX882"></a>
+<a name="IDX900"></a>
</dt>
<dt><u>Function:</u> int <b>u32_normcoll</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX883"></a>
+<a name="IDX901"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in normalization, using
the collation rules of the current locale.
@@ -433,8 +433,8 @@ Upon failure, returns -1 with <code>errno</code> set.
<hr size="6">
<a name="Normalization-of-streams"></a>
-<a name="SEC66"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC66">13.5 Normalization of streams of Unicode characters</a> </h2>
+<a name="SEC68"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC68">13.5 Normalization of streams of Unicode characters</a> </h2>
<p>A &ldquo;stream of Unicode characters&rdquo; is essentially a function that accepts an
<code>ucs4_t</code> argument repeatedly, optionally combined with a function that
@@ -442,7 +442,7 @@ Upon failure, returns -1 with <code>errno</code> set.
</p>
<dl>
<dt><u>Type:</u> <b>struct uninorm_filter</b>
-<a name="IDX884"></a>
+<a name="IDX902"></a>
</dt>
<dd><p>This is the data type of a stream of Unicode characters that normalizes its
input according to a given normalization form and passes the normalized
@@ -451,7 +451,7 @@ character sequence to the encapsulated stream of Unicode characters.
<dl>
<dt><u>Function:</u> struct uninorm_filter * <b>uninorm_filter_create</b><i> (uninorm_t&nbsp;<var>nf</var>, int&nbsp;(*<var>stream_func</var>)&nbsp;(void&nbsp;*<var>stream_data</var>, ucs4_t&nbsp;<var>uc</var>), void&nbsp;*<var>stream_data</var>)</i>
-<a name="IDX885"></a>
+<a name="IDX903"></a>
</dt>
<dd><p>Creates and returns a normalization filter for Unicode characters.
</p>
@@ -465,7 +465,7 @@ upon failure.
<dl>
<dt><u>Function:</u> int <b>uninorm_filter_write</b><i> (struct&nbsp;uninorm_filter&nbsp;*<var>filter</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX886"></a>
+<a name="IDX904"></a>
</dt>
<dd><p>Stuffs a Unicode character into a normalizing filter.
Returns 0 if successful, or -1 with <code>errno</code> set upon failure.
@@ -473,7 +473,7 @@ Returns 0 if successful, or -1 with <code>errno</code> set upon failure.
<dl>
<dt><u>Function:</u> int <b>uninorm_filter_flush</b><i> (struct&nbsp;uninorm_filter&nbsp;*<var>filter</var>)</i>
-<a name="IDX887"></a>
+<a name="IDX905"></a>
</dt>
<dd><p>Brings data buffered in the filter to its destination, the encapsulated stream.
</p>
@@ -486,7 +486,7 @@ will not necessarily be normalized.
<dl>
<dt><u>Function:</u> int <b>uninorm_filter_free</b><i> (struct&nbsp;uninorm_filter&nbsp;*<var>filter</var>)</i>
-<a name="IDX888"></a>
+<a name="IDX906"></a>
</dt>
<dd><p>Brings data buffered in the filter to its destination, the encapsulated stream,
then closes and frees the filter.
@@ -495,8 +495,8 @@ then closes and frees the filter.
</p></dd></dl>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC61" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_14.html#SEC67" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC63" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_14.html#SEC69" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -504,12 +504,12 @@ then closes and frees the filter.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_14.html b/doc/libunistring_14.html
index 04f1130e..b47c2c3f 100644
--- a/doc/libunistring_14.html
+++ b/doc/libunistring_14.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_13.html#SEC61" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_15.html#SEC73" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_13.html#SEC63" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_15.html#SEC75" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="unicase_002eh"></a>
-<a name="SEC67"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC67">14. Case mappings <code>&lt;unicase.h&gt;</code></a> </h1>
+<a name="SEC69"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC69">14. Case mappings <code>&lt;unicase.h&gt;</code></a> </h1>
<p>This include file defines functions for case mapping for Unicode strings and
case insensitive comparison of Unicode strings and C strings.
@@ -71,8 +71,8 @@ Greek sigma and the Lithuanian i correctly.
<hr size="6">
<a name="Case-mappings-of-characters"></a>
-<a name="SEC68"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC68">14.1 Case mappings of characters</a> </h2>
+<a name="SEC70"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC70">14.1 Case mappings of characters</a> </h2>
<p>The following functions implement case mappings on Unicode characters &mdash;
for those cases only where the result of the mapping is a again a single
@@ -88,21 +88,21 @@ entire string at once and are language aware.
<dl>
<dt><u>Function:</u> ucs4_t <b>uc_toupper</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX889"></a>
+<a name="IDX907"></a>
</dt>
<dd><p>Returns the uppercase mapping of the Unicode character <var>uc</var>.
</p></dd></dl>
<dl>
<dt><u>Function:</u> ucs4_t <b>uc_tolower</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX890"></a>
+<a name="IDX908"></a>
</dt>
<dd><p>Returns the lowercase mapping of the Unicode character <var>uc</var>.
</p></dd></dl>
<dl>
<dt><u>Function:</u> ucs4_t <b>uc_totitle</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX891"></a>
+<a name="IDX909"></a>
</dt>
<dd><p>Returns the titlecase mapping of the Unicode character <var>uc</var>.
</p>
@@ -110,7 +110,7 @@ entire string at once and are language aware.
look like upper case and the following characters are lower cased.
</p>
<p>For most characters, this is the same as the uppercase mapping. There are
-only few characters where the title case variant and the uuper case variant
+only few characters where the title case variant and the upper case variant
are different. These characters occur in the Latin writing of the Croatian,
Bosnian, and Serbian languages.
</p>
@@ -138,11 +138,11 @@ Bosnian, and Serbian languages.
<hr size="6">
<a name="Case-mappings-of-strings"></a>
-<a name="SEC69"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC69">14.2 Case mappings of strings</a> </h2>
+<a name="SEC71"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC71">14.2 Case mappings of strings</a> </h2>
<p>Case mapping should always be performed on entire strings, not on individual
-characters. The functions in this sections do so.
+characters. The functions in this section do so.
</p>
<p>These functions allow to apply a normalization after the case mapping. The
reason is that if you want to treat &lsquo;<samp>&auml;</samp>&rsquo; and &lsquo;<samp>&Auml;</samp>&rsquo; the same,
@@ -151,14 +151,14 @@ a character, U+00C4 <small>LATIN CAPITAL LETTER A WITH DIAERESIS</small> and
U+0041 <small>LATIN CAPITAL LETTER A</small> U+0308 <small>COMBINING DIAERESIS</small> the same.
The <var>nf</var> argument designates the normalization.
</p>
-<a name="IDX892"></a>
+<a name="IDX910"></a>
<p>These functions are locale dependent. The <var>iso639_language</var> argument
identifies the language (e.g. <code>&quot;tr&quot;</code> for Turkish). NULL means to use
locale independent case mappings.
</p>
<dl>
<dt><u>Function:</u> const char * <b>uc_locale_language</b><i> ()</i>
-<a name="IDX893"></a>
+<a name="IDX911"></a>
</dt>
<dd><p>Returns the ISO 639 language code of the current locale.
Returns <code>&quot;&quot;</code> if it is unknown, or in the &quot;C&quot; locale.
@@ -166,13 +166,13 @@ Returns <code>&quot;&quot;</code> if it is unknown, or in the &quot;C&quot; loca
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_toupper</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX894"></a>
+<a name="IDX912"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_toupper</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX895"></a>
+<a name="IDX913"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_toupper</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX896"></a>
+<a name="IDX914"></a>
</dt>
<dd><p>Returns the uppercase mapping of a string.
</p>
@@ -185,13 +185,13 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_tolower</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX897"></a>
+<a name="IDX915"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_tolower</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX898"></a>
+<a name="IDX916"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_tolower</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX899"></a>
+<a name="IDX917"></a>
</dt>
<dd><p>Returns the lowercase mapping of a string.
</p>
@@ -204,13 +204,13 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_totitle</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX900"></a>
+<a name="IDX918"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_totitle</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX901"></a>
+<a name="IDX919"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_totitle</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX902"></a>
+<a name="IDX920"></a>
</dt>
<dd><p>Returns the titlecase mapping of a string.
</p>
@@ -227,8 +227,8 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<hr size="6">
<a name="Case-mappings-of-substrings"></a>
-<a name="SEC70"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC70">14.3 Case mappings of substrings</a> </h2>
+<a name="SEC72"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC72">14.3 Case mappings of substrings</a> </h2>
<p>Case mapping of a substring cannot simply be performed by extracting the
substring and then applying the case mapping function to it. This does not
@@ -239,7 +239,7 @@ precede it (the &ldquo;prefix&rdquo;) and the characters that follow it (the &ld
</p>
<dl>
<dt><u>Type:</u> <b>casing_prefix_context_t</b>
-<a name="IDX903"></a>
+<a name="IDX921"></a>
</dt>
<dd><p>This data type denotes the case-mapping context that is given by a prefix
string. It is an immediate type that can be copied by simple assignment,
@@ -248,7 +248,7 @@ without involving memory allocation. It is not an array type.
<dl>
<dt><u>Constant:</u> casing_prefix_context_t <b>unicase_empty_prefix_context</b>
-<a name="IDX904"></a>
+<a name="IDX922"></a>
</dt>
<dd><p>This constant is the case-mapping context that corresponds to an empty prefix
string.
@@ -258,26 +258,26 @@ string.
</p>
<dl>
<dt><u>Function:</u> casing_prefix_context_t <b>u8_casing_prefix_context</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX905"></a>
+<a name="IDX923"></a>
</dt>
<dt><u>Function:</u> casing_prefix_context_t <b>u16_casing_prefix_context</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX906"></a>
+<a name="IDX924"></a>
</dt>
<dt><u>Function:</u> casing_prefix_context_t <b>u32_casing_prefix_context</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX907"></a>
+<a name="IDX925"></a>
</dt>
<dd><p>Returns the case-mapping context of a given prefix string.
</p></dd></dl>
<dl>
<dt><u>Function:</u> casing_prefix_context_t <b>u8_casing_prefixes_context</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>a_context</var>)</i>
-<a name="IDX908"></a>
+<a name="IDX926"></a>
</dt>
<dt><u>Function:</u> casing_prefix_context_t <b>u16_casing_prefixes_context</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>a_context</var>)</i>
-<a name="IDX909"></a>
+<a name="IDX927"></a>
</dt>
<dt><u>Function:</u> casing_prefix_context_t <b>u32_casing_prefixes_context</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>a_context</var>)</i>
-<a name="IDX910"></a>
+<a name="IDX928"></a>
</dt>
<dd><p>Returns the case-mapping context of the prefix concat(<var>a</var>, <var>s</var>),
given the case-mapping context of the prefix <var>a</var>.
@@ -285,7 +285,7 @@ given the case-mapping context of the prefix <var>a</var>.
<dl>
<dt><u>Type:</u> <b>casing_suffix_context_t</b>
-<a name="IDX911"></a>
+<a name="IDX929"></a>
</dt>
<dd><p>This data type denotes the case-mapping context that is given by a suffix
string. It is an immediate type that can be copied by simple assignment,
@@ -294,7 +294,7 @@ without involving memory allocation. It is not an array type.
<dl>
<dt><u>Constant:</u> casing_suffix_context_t <b>unicase_empty_suffix_context</b>
-<a name="IDX912"></a>
+<a name="IDX930"></a>
</dt>
<dd><p>This constant is the case-mapping context that corresponds to an empty suffix
string.
@@ -304,26 +304,26 @@ string.
</p>
<dl>
<dt><u>Function:</u> casing_suffix_context_t <b>u8_casing_suffix_context</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX913"></a>
+<a name="IDX931"></a>
</dt>
<dt><u>Function:</u> casing_suffix_context_t <b>u16_casing_suffix_context</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX914"></a>
+<a name="IDX932"></a>
</dt>
<dt><u>Function:</u> casing_suffix_context_t <b>u32_casing_suffix_context</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX915"></a>
+<a name="IDX933"></a>
</dt>
<dd><p>Returns the case-mapping context of a given suffix string.
</p></dd></dl>
<dl>
<dt><u>Function:</u> casing_suffix_context_t <b>u8_casing_suffixes_context</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_suffix_context_t&nbsp;<var>a_context</var>)</i>
-<a name="IDX916"></a>
+<a name="IDX934"></a>
</dt>
<dt><u>Function:</u> casing_suffix_context_t <b>u16_casing_suffixes_context</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_suffix_context_t&nbsp;<var>a_context</var>)</i>
-<a name="IDX917"></a>
+<a name="IDX935"></a>
</dt>
<dt><u>Function:</u> casing_suffix_context_t <b>u32_casing_suffixes_context</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_suffix_context_t&nbsp;<var>a_context</var>)</i>
-<a name="IDX918"></a>
+<a name="IDX936"></a>
</dt>
<dd><p>Returns the case-mapping context of the suffix concat(<var>s</var>, <var>a</var>),
given the case-mapping context of the suffix <var>a</var>.
@@ -334,13 +334,13 @@ prefix context and the suffix context.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_ct_toupper</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX919"></a>
+<a name="IDX937"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_ct_toupper</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX920"></a>
+<a name="IDX938"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_ct_toupper</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX921"></a>
+<a name="IDX939"></a>
</dt>
<dd><p>Returns the uppercase mapping of a string that is surrounded by a prefix
and a suffix.
@@ -351,13 +351,13 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_ct_tolower</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX922"></a>
+<a name="IDX940"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_ct_tolower</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX923"></a>
+<a name="IDX941"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_ct_tolower</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX924"></a>
+<a name="IDX942"></a>
</dt>
<dd><p>Returns the lowercase mapping of a string that is surrounded by a prefix
and a suffix.
@@ -368,13 +368,13 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_ct_totitle</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX925"></a>
+<a name="IDX943"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_ct_totitle</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX926"></a>
+<a name="IDX944"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_ct_totitle</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX927"></a>
+<a name="IDX945"></a>
</dt>
<dd><p>Returns the titlecase mapping of a string that is surrounded by a prefix
and a suffix.
@@ -398,21 +398,21 @@ uint8_t result =
<hr size="6">
<a name="Case-insensitive-comparison"></a>
-<a name="SEC71"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC71">14.4 Case insensitive comparison</a> </h2>
+<a name="SEC73"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC73">14.4 Case insensitive comparison</a> </h2>
<p>The following functions implement comparison that ignores differences in case
and normalization.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_casefold</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX928"></a>
+<a name="IDX946"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_casefold</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX929"></a>
+<a name="IDX947"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_casefold</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX930"></a>
+<a name="IDX948"></a>
</dt>
<dd><p>Returns the case folded string.
</p>
@@ -429,13 +429,13 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_ct_casefold</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX931"></a>
+<a name="IDX949"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_ct_casefold</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX932"></a>
+<a name="IDX950"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_ct_casefold</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, casing_prefix_context_t&nbsp;<var>prefix_context</var>, casing_suffix_context_t&nbsp;<var>suffix_context</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX933"></a>
+<a name="IDX951"></a>
</dt>
<dd><p>Returns the case folded string. The case folding takes into account the
case mapping contexts of the prefix and suffix strings.
@@ -444,18 +444,21 @@ case mapping contexts of the prefix and suffix strings.
chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
</p></dd></dl>
+<p>The following functions ignore locale-dependent collation rules, but do
+use locale-dependent case mappings (if <var>iso639_language</var> is not NULL).
+</p>
<dl>
<dt><u>Function:</u> int <b>u8_casecmp</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX934"></a>
+<a name="IDX952"></a>
</dt>
<dt><u>Function:</u> int <b>u16_casecmp</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX935"></a>
+<a name="IDX953"></a>
</dt>
<dt><u>Function:</u> int <b>u32_casecmp</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX936"></a>
+<a name="IDX954"></a>
</dt>
<dt><u>Function:</u> int <b>ulc_casecmp</b><i> (const&nbsp;char&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;char&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX937"></a>
+<a name="IDX955"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in case and normalization.
</p>
@@ -467,25 +470,25 @@ case-mapping. It can also be NULL, for no normalization.
Upon failure, returns -1 with <code>errno</code> set.
</p></dd></dl>
-<a name="IDX938"></a>
-<a name="IDX939"></a>
-<a name="IDX940"></a>
-<a name="IDX941"></a>
+<a name="IDX956"></a>
+<a name="IDX957"></a>
+<a name="IDX958"></a>
+<a name="IDX959"></a>
<p>The following functions additionally take into account the sorting rules of the
current locale.
</p>
<dl>
<dt><u>Function:</u> char * <b>u8_casexfrm</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX942"></a>
+<a name="IDX960"></a>
</dt>
<dt><u>Function:</u> char * <b>u16_casexfrm</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX943"></a>
+<a name="IDX961"></a>
</dt>
<dt><u>Function:</u> char * <b>u32_casexfrm</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX944"></a>
+<a name="IDX962"></a>
</dt>
<dt><u>Function:</u> char * <b>ulc_casexfrm</b><i> (const&nbsp;char&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX945"></a>
+<a name="IDX963"></a>
</dt>
<dd><p>Converts the string <var>s</var> of length <var>n</var> to a NUL-terminated byte
sequence, in such a way that comparing <code>u8_casexfrm (<var>s1</var>)</code> and
@@ -501,16 +504,16 @@ chapter <a href="libunistring_2.html#SEC8">Conventions</a>.
<dl>
<dt><u>Function:</u> int <b>u8_casecoll</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX946"></a>
+<a name="IDX964"></a>
</dt>
<dt><u>Function:</u> int <b>u16_casecoll</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX947"></a>
+<a name="IDX965"></a>
</dt>
<dt><u>Function:</u> int <b>u32_casecoll</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX948"></a>
+<a name="IDX966"></a>
</dt>
<dt><u>Function:</u> int <b>ulc_casecoll</b><i> (const&nbsp;char&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;char&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, uninorm_t&nbsp;<var>nf</var>, int&nbsp;*<var>resultp</var>)</i>
-<a name="IDX949"></a>
+<a name="IDX967"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in case and normalization,
using the collation rules of the current locale.
@@ -526,8 +529,8 @@ Upon failure, returns -1 with <code>errno</code> set.
<hr size="6">
<a name="Case-detection"></a>
-<a name="SEC72"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC72">14.5 Case detection</a> </h2>
+<a name="SEC74"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC74">14.5 Case detection</a> </h2>
<p>The following functions determine whether a Unicode string is entirely in
upper case. or entirely in lower case, or entirely in title case, or already
@@ -535,13 +538,13 @@ case-folded.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_is_uppercase</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX950"></a>
+<a name="IDX968"></a>
</dt>
<dt><u>Function:</u> int <b>u16_is_uppercase</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX951"></a>
+<a name="IDX969"></a>
</dt>
<dt><u>Function:</u> int <b>u32_is_uppercase</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX952"></a>
+<a name="IDX970"></a>
</dt>
<dd><p>Sets <code>*<var>resultp</var></code> to true if mapping NFD(<var>s</var>) to upper case is
a no-op, or to false otherwise, and returns 0. Upon failure, returns -1 with
@@ -550,13 +553,13 @@ a no-op, or to false otherwise, and returns 0. Upon failure, returns -1 with
<dl>
<dt><u>Function:</u> int <b>u8_is_lowercase</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX953"></a>
+<a name="IDX971"></a>
</dt>
<dt><u>Function:</u> int <b>u16_is_lowercase</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX954"></a>
+<a name="IDX972"></a>
</dt>
<dt><u>Function:</u> int <b>u32_is_lowercase</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX955"></a>
+<a name="IDX973"></a>
</dt>
<dd><p>Sets <code>*<var>resultp</var></code> to true if mapping NFD(<var>s</var>) to lower case is
a no-op, or to false otherwise, and returns 0. Upon failure, returns -1 with
@@ -565,13 +568,13 @@ a no-op, or to false otherwise, and returns 0. Upon failure, returns -1 with
<dl>
<dt><u>Function:</u> int <b>u8_is_titlecase</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX956"></a>
+<a name="IDX974"></a>
</dt>
<dt><u>Function:</u> int <b>u16_is_titlecase</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX957"></a>
+<a name="IDX975"></a>
</dt>
<dt><u>Function:</u> int <b>u32_is_titlecase</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX958"></a>
+<a name="IDX976"></a>
</dt>
<dd><p>Sets <code>*<var>resultp</var></code> to true if mapping NFD(<var>s</var>) to title case is
a no-op, or to false otherwise, and returns 0. Upon failure, returns -1 with
@@ -580,13 +583,13 @@ a no-op, or to false otherwise, and returns 0. Upon failure, returns -1 with
<dl>
<dt><u>Function:</u> int <b>u8_is_casefolded</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX959"></a>
+<a name="IDX977"></a>
</dt>
<dt><u>Function:</u> int <b>u16_is_casefolded</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX960"></a>
+<a name="IDX978"></a>
</dt>
<dt><u>Function:</u> int <b>u32_is_casefolded</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX961"></a>
+<a name="IDX979"></a>
</dt>
<dd><p>Sets <code>*<var>resultp</var></code> to true if applying case folding to NFD(<var>S</var>) is
a no-op, or to false otherwise, and returns 0. Upon failure, returns -1 with
@@ -598,13 +601,13 @@ Unicode string.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_is_cased</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX962"></a>
+<a name="IDX980"></a>
</dt>
<dt><u>Function:</u> int <b>u16_is_cased</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX963"></a>
+<a name="IDX981"></a>
</dt>
<dt><u>Function:</u> int <b>u32_is_cased</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>iso639_language</var>, bool&nbsp;*<var>resultp</var>)</i>
-<a name="IDX964"></a>
+<a name="IDX982"></a>
</dt>
<dd><p>Sets <code>*<var>resultp</var></code> to true if case matters for <var>s</var>, that is, if
mapping NFD(<var>s</var>) to either upper case or lower case or title case is not
@@ -615,8 +618,8 @@ characters. Upon failure, returns -1 with <code>errno</code> set.
</p></dd></dl>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC67" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_15.html#SEC73" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC69" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_15.html#SEC75" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -624,12 +627,12 @@ characters. Upon failure, returns -1 with <code>errno</code> set.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_15.html b/doc/libunistring_15.html
index 6140c4e8..bfc3e302 100644
--- a/doc/libunistring_15.html
+++ b/doc/libunistring_15.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_14.html#SEC67" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_16.html#SEC74" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_14.html#SEC69" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_16.html#SEC76" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,21 +51,21 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="uniregex_002eh"></a>
-<a name="SEC73"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC73">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a> </h1>
+<a name="SEC75"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC75">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a> </h1>
<p>This include file is not yet implemented.
</p>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_14.html#SEC67" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_16.html#SEC74" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_14.html#SEC69" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_16.html#SEC76" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -73,12 +73,12 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_16.html b/doc/libunistring_16.html
index 9e94295b..39f70977 100644
--- a/doc/libunistring_16.html
+++ b/doc/libunistring_16.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_15.html#SEC73" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_17.html#SEC80" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_15.html#SEC75" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_17.html#SEC82" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="Using-the-library"></a>
-<a name="SEC74"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC74">16. Using the library</a> </h1>
+<a name="SEC76"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC76">16. Using the library</a> </h1>
<p>This chapter explains some practical considerations, regarding the
installation and compiler options that are needed in order to use this
@@ -67,22 +67,22 @@ library.
<hr size="6">
<a name="Installation"></a>
-<a name="SEC75"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC75">16.1 Installation</a> </h2>
+<a name="SEC77"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC77">16.1 Installation</a> </h2>
<p>Before you can use the library, it must be installed. First, you have to
make sure all dependencies are installed. They are listed in the file
&lsquo;<tt>DEPENDENCIES</tt>&rsquo;.
</p>
-<a name="IDX965"></a>
+<a name="IDX983"></a>
<p>Then you can proceed to build and install the library, as described in the
file &lsquo;<tt>INSTALL</tt>&rsquo;. For installation on Windows systems, please refer to
the file &lsquo;<tt>INSTALL.windows</tt>&rsquo;.
</p>
<hr size="6">
<a name="Compiler-options"></a>
-<a name="SEC76"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC76">16.2 Compiler options</a> </h2>
+<a name="SEC78"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC78">16.2 Compiler options</a> </h2>
<p>Let's denote as <code>LIBUNISTRING_PREFIX</code> the value of the &lsquo;<samp>--prefix</samp>&rsquo;
option that you passed to <code>configure</code> while installing this package.
@@ -103,7 +103,7 @@ in 64-bit mode on a 64-bit GNU/Linux system that supports executables
in either 64-bit mode or 32-bit mode, you should have used the option
<code>--libdir=${LIBUNISTRING_PREFIX}/lib64</code>.
</p>
-<a name="IDX966"></a>
+<a name="IDX984"></a>
<p>So that the compiler finds the include files, you have to pass it the
option <code>-I${LIBUNISTRING_INCLUDEDIR}</code>.
</p>
@@ -111,13 +111,13 @@ option <code>-I${LIBUNISTRING_INCLUDEDIR}</code>.
to pass it the options <code>-L${LIBUNISTRING_LIBDIR} -lunistring</code>.
On some systems, in some configurations, you also have to pass options
needed for linking with <code>libiconv</code>. The autoconf macro
-<code>gl_LIBUNISTRING</code> (see <a href="#SEC78">Autoconf macro</a>) deals with this
+<code>gl_LIBUNISTRING</code> (see <a href="#SEC80">Autoconf macro</a>) deals with this
particularity.
</p>
<hr size="6">
<a name="Include-files"></a>
-<a name="SEC77"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC77">16.3 Include files</a> </h2>
+<a name="SEC79"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC79">16.3 Include files</a> </h2>
<p>Most of the include files have been presented in the introduction, see
<a href="libunistring_1.html#SEC1">Introduction</a>, and subsequent detailed chapters.
@@ -127,20 +127,22 @@ version number of the libunistring library.
</p>
<dl>
<dt><u>Macro:</u> int <b>_LIBUNISTRING_VERSION</b>
-<a name="IDX967"></a>
+<a name="IDX985"></a>
</dt>
<dd><p>This constant contains the version of libunistring that is being used
-at compile time. It encodes the major and minor parts of the version
-number only. These parts are encoded in the form <code>(major&lt;&lt;8) + minor</code>.
+at compile time.
+It encodes the major, minor, and subminor parts of the version number.
+These parts are encoded in the form <code>(major&lt;&lt;16) + (minor&lt;&lt;8) + subminor</code>.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>_libunistring_version</b>
-<a name="IDX968"></a>
+<a name="IDX986"></a>
</dt>
<dd><p>This constant contains the version of libunistring that is being used
-at run time. It encodes the major and minor parts of the version
-number only. These parts are encoded in the form <code>(major&lt;&lt;8) + minor</code>.
+at run time.
+It encodes the major, minor, and subminor parts of the version number.
+These parts are encoded in the form <code>(major&lt;&lt;16) + (minor&lt;&lt;8) + subminor</code>.
</p></dd></dl>
<p>It is possible that <code>_libunistring_version</code> is greater than
@@ -149,17 +151,29 @@ number only. These parts are encoded in the form <code>(major&lt;&lt;8) + minor
backward-compatible version has been installed after your program
that uses <code>libunistring</code> was installed.
</p>
+<p><code>&lt;unistring/version.h&gt;</code> also contains:
+</p>
+<dl>
+<dt><u>Constant:</u> int <b>_libunistring_unicode_version</b>
+<a name="IDX987"></a>
+</dt>
+<dd><p>This constant contains the version of the Unicode standard that is
+implemented by libunistring.
+It encodes the major and minor parts of the version number only.
+These parts are encoded in the form <code>(major&lt;&lt;8) + minor</code>.
+</p></dd></dl>
+
<hr size="6">
<a name="Autoconf-macro"></a>
-<a name="SEC78"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC78">16.4 Autoconf macro</a> </h2>
+<a name="SEC80"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC80">16.4 Autoconf macro</a> </h2>
<p>GNU Gnulib provides an autoconf macro that tests for the availability
of <code>libunistring</code>. It is contained in the Gnulib module
&lsquo;<samp>libunistring</samp>&rsquo;, see
<a href="https://www.gnu.org/software/gnulib/MODULES.html#module=libunistring">https://www.gnu.org/software/gnulib/MODULES.html#module=libunistring</a>.
</p>
-<a name="IDX969"></a>
+<a name="IDX988"></a>
<p>The macro is called <code>gl_LIBUNISTRING</code>. It searches for an installed
libunistring. If found, it sets and AC_SUBSTs <code>HAVE_LIBUNISTRING=yes</code>
and the <code>LIBUNISTRING</code> and <code>LTLIBUNISTRING</code> variables and augments
@@ -191,8 +205,8 @@ on most systems.
<hr size="6">
<a name="Reporting-problems"></a>
-<a name="SEC79"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC79">16.5 Reporting problems</a> </h2>
+<a name="SEC81"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC81">16.5 Reporting problems</a> </h2>
<p>If you encounter any problem, please don't hesitate to submit a detailed
bug report either in the bug tracker at the project page
@@ -209,8 +223,8 @@ a description of the options that you passed to the &lsquo;<samp>configure</samp
</p>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC74" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_17.html#SEC80" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC76" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_17.html#SEC82" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -218,12 +232,12 @@ a description of the options that you passed to the &lsquo;<samp>configure</samp
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_17.html b/doc/libunistring_17.html
index f78b14d9..32db0272 100644
--- a/doc/libunistring_17.html
+++ b/doc/libunistring_17.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_16.html#SEC74" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC81" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_16.html#SEC76" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_18.html#SEC83" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,27 +51,27 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="More-functionality"></a>
-<a name="SEC80"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC80">17. More advanced functionality</a> </h1>
+<a name="SEC82"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC82">17. More advanced functionality</a> </h1>
<p>For bidirectional reordering of strings, we recommend the GNU FriBidi library:
<a href="http://www.fribidi.org/">http://www.fribidi.org/</a>.
</p>
-<a name="IDX970"></a>
+<a name="IDX989"></a>
<p>For the rendering of Unicode strings outside of the context of a given toolkit
(KDE/Qt or GNOME/Gtk), we recommend the Pango library:
<a href="https://www.pango.org/">https://www.pango.org/</a>.
</p>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_16.html#SEC74" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC81" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_16.html#SEC76" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_18.html#SEC83" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -79,12 +79,12 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_18.html b/doc/libunistring_18.html
index 2e3e96ac..ad8da470 100644
--- a/doc/libunistring_18.html
+++ b/doc/libunistring_18.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_17.html#SEC80" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_19.html#SEC82" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_17.html#SEC82" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC84" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="The-wchar_005ft-mess"></a>
-<a name="SEC81"></a>
-<h1 class="appendix"> <a href="libunistring_toc.html#TOC81">A. The <code>wchar_t</code> mess</a> </h1>
+<a name="SEC83"></a>
+<h1 class="appendix"> <a href="libunistring_toc.html#TOC83">A. The <code>wchar_t</code> mess</a> </h1>
<p>The ISO C and POSIX standard creators made an attempt to fix the first
problem mentioned in the section <a href="libunistring_1.html#SEC6">&lsquo;<samp>char *</samp>&rsquo; strings</a>. They introduced
@@ -66,7 +66,8 @@ problem mentioned in the section <a href="libunistring_1.html#SEC6">&lsquo;<samp
<li>
a type &lsquo;<samp>wchar_t</samp>&rsquo;, designed to encapsulate an entire character,
</li><li>
-a &ldquo;wide string&rdquo; type &lsquo;<samp>wchar_t *</samp>&rsquo;, and
+a &ldquo;wide string&rdquo; type &lsquo;<samp>wchar_t *</samp>&rsquo;, with some API functions declared in
+<a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/wchar.h.html"><code>&lt;wchar.h&gt;</code></a>, and
</li><li>
functions declared in <a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/wctype.h.html"><code>&lt;wctype.h&gt;</code></a> that were meant to supplant the
ones in <a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/ctype.h.html"><code>&lt;ctype.h&gt;</code></a>.
@@ -76,8 +77,8 @@ ones in <a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/ctype.
</p>
<ul>
<li>
-On AIX and Windows platforms, <code>wchar_t</code> is a 16-bit type. This
-means that it can never accommodate an entire Unicode character. Either
+On Windows platforms and on AIX in 32-bit mode, <code>wchar_t</code> is a 16-bit type.
+This means that it can never accommodate an entire Unicode character. Either
the <code>wchar_t *</code> strings are limited to characters in UCS-2 (the
&ldquo;Basic Multilingual Plane&rdquo; of Unicode), or &mdash; if <code>wchar_t *</code>
strings are encoded in UTF-16 &mdash; a <code>wchar_t</code> represents only half
@@ -110,8 +111,8 @@ the program to produce garbage or abort.
</p>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_17.html#SEC80" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_19.html#SEC82" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_17.html#SEC82" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC84" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -119,12 +120,12 @@ the program to produce garbage or abort.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_19.html b/doc/libunistring_19.html
index 2a706a22..e16e6ee4 100644
--- a/doc/libunistring_19.html
+++ b/doc/libunistring_19.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_18.html#SEC81" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_20.html#SEC83" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_18.html#SEC83" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_20.html#SEC85" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="The-char32_005ft-problem"></a>
-<a name="SEC82"></a>
-<h1 class="appendix"> <a href="libunistring_toc.html#TOC82">B. The <code>char32_t</code> problem</a> </h1>
+<a name="SEC84"></a>
+<h1 class="appendix"> <a href="libunistring_toc.html#TOC84">B. The <code>char32_t</code> problem</a> </h1>
<p>In response to the <code>wchar_t</code> mess described in the previous section,
ISO C 11 introduces two new types: <code>char32_t</code> and <code>char16_t</code>.
@@ -108,8 +108,8 @@ encoding may be different from the <code>wchar_t</code> encoding.
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_18.html#SEC81" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_20.html#SEC83" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_18.html#SEC83" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_20.html#SEC85" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -117,12 +117,12 @@ encoding may be different from the <code>wchar_t</code> encoding.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_2.html b/doc/libunistring_2.html
index d9da4378..2b644c18 100644
--- a/doc/libunistring_2.html
+++ b/doc/libunistring_2.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -76,7 +76,7 @@ order mark. Their units are 2-byte words.
order mark. Their units are 4-byte words.
</p>
<p>Argument pairs <code>(<var>s</var>, <var>n</var>)</code> denote a string
-<code><var>s</var>[0..<var>n</var>-1]</code> with exactly <var>n</var> units.
+<code><var>s</var>[0..<var>n</var>-1]</code> with exactly <var>n</var> units.<a name="DOCF1" href="libunistring_fot.html#FOOT1">(1)</a>
</p>
<p>All functions with prefix &lsquo;<samp>ulc_</samp>&rsquo; operate on C strings in locale
encoding.
@@ -116,6 +116,27 @@ is returned. In both cases, <code>*<var>lengthp</var></code> is set to the
length (number of units) of the returned string. In case of error,
NULL is returned and <code>errno</code> is set.
</p>
+<p>To invoke such a function:
+</p><ul>
+<li>
+First ask yourself whether you want to accept the overhead of a
+<code>malloc</code> invocation even for a small-sized result.
+If yes, pass NULL as <var>resultbuf</var>.
+If no, allocate an array of units on the stack, typically between 50 and
+4000 bytes large; pass this array as <var>resultbuf</var>; and initialize
+<code>*<var>lengthp</var></code> to the number of units of this array.
+</li><li>
+Upon return from such a function, look at the return value:
+NULL means an error; look at the value of <code>errno</code> in this case.
+Otherwise, the return value is the result, with <code>*<var>lengthp</var></code>
+units. Note that the function has <em>not</em> added an extra NUL
+character at the end.
+</li><li>
+Finally, do memory management. You know that the result was
+<code>malloc</code>-allocated if it is <code>!= NULL</code> and
+<code>!= <var>resultbuf</var></code>.
+</li></ul>
+
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="libunistring_1.html#SEC1" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
@@ -127,12 +148,12 @@ NULL is returned and <code>errno</code> is set.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_20.html b/doc/libunistring_20.html
index 9c38a685..e74a9444 100644
--- a/doc/libunistring_20.html
+++ b/doc/libunistring_20.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_19.html#SEC82" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_19.html#SEC84" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,14 +51,14 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="Licenses"></a>
-<a name="SEC83"></a>
-<h1 class="appendix"> <a href="libunistring_toc.html#TOC83">C. Licenses</a> </h1>
+<a name="SEC85"></a>
+<h1 class="appendix"> <a href="libunistring_toc.html#TOC85">C. Licenses</a> </h1>
<p>The files of this package are covered by the licenses indicated in each
particular file or directory. Here is a summary:
@@ -77,8 +77,8 @@ the terms of the GNU General Public License (GPL) version 2 or
</li><li> -
the same dual license &quot;the GNU LGPLv3+ or the GNU GPLv2+&quot;.
</li></ul>
-<p>You find the GNU LGPL version 3 in <a href="#SEC89">GNU LESSER GENERAL PUBLIC LICENSE</a>. This license is
-based on the GNU GPL version 3, see <a href="#SEC84">GNU GENERAL PUBLIC LICENSE</a>.
+<p>You find the GNU LGPL version 3 in <a href="#SEC91">GNU LESSER GENERAL PUBLIC LICENSE</a>. This license is
+based on the GNU GPL version 3, see <a href="#SEC86">GNU GENERAL PUBLIC LICENSE</a>.
<br>
You can find the GNU GPL version 2 at
<a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">https://www.gnu.org/licenses/old-licenses/gpl-2.0.html</a>.
@@ -99,21 +99,21 @@ GNU Free Documentation License (FDL), either version 1.2 of the
License, or (at your option) any later version published by the
Free Software Foundation (FSF); with no Invariant Sections, with no
Front-Cover Text, and with no Back-Cover Texts.
-A copy of the license is included in <a href="#SEC90">GNU Free Documentation License</a>.
+A copy of the license is included in <a href="#SEC92">GNU Free Documentation License</a>.
<br>
This manual is covered by the GNU GPL. You can redistribute it and/or
modify it under the terms of the GNU General Public License (GPL), either
version 3 of the License, or (at your option) any later version published
by the Free Software Foundation (FSF).
-A copy of the license is included in <a href="#SEC84">GNU GENERAL PUBLIC LICENSE</a>.
+A copy of the license is included in <a href="#SEC86">GNU GENERAL PUBLIC LICENSE</a>.
</li></ul>
<hr size="6">
<a name="GNU-GPL"></a>
-<a name="SEC84"></a>
-<h2 class="appendixsec"> <a href="libunistring_toc.html#TOC84">C.1 GNU GENERAL PUBLIC LICENSE</a> </h2>
+<a name="SEC86"></a>
+<h2 class="appendixsec"> <a href="libunistring_toc.html#TOC86">C.1 GNU GENERAL PUBLIC LICENSE</a> </h2>
<p align="center"> Version 3, 29 June 2007
</p>
@@ -123,7 +123,7 @@ Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
</pre></td></tr></table>
-<a name="SEC85"></a>
+<a name="SEC87"></a>
<h2 class="heading"> Preamble </h2>
<p>The GNU General Public License is a free, copyleft license for
@@ -189,7 +189,7 @@ assures that patents cannot be used to render the program non-free.
<p>The precise terms and conditions for copying, distribution and
modification follow.
</p>
-<a name="SEC86"></a>
+<a name="SEC88"></a>
<h2 class="heading"> TERMS AND CONDITIONS </h2>
<ol>
@@ -769,10 +769,10 @@ copy of the Program in return for a fee.
</p>
</li></ol>
-<a name="SEC87"></a>
+<a name="SEC89"></a>
<h2 class="heading"> END OF TERMS AND CONDITIONS </h2>
-<a name="SEC88"></a>
+<a name="SEC90"></a>
<h2 class="heading"> How to Apply These Terms to Your New Programs </h2>
<p>If you develop a new program, and you want it to be of the greatest
@@ -832,8 +832,8 @@ first, please read <a href="https://www.gnu.org/licenses/why-not-lgpl.html">http
</p><hr size="6">
<a name="GNU-LGPL"></a>
-<a name="SEC89"></a>
-<h2 class="appendixsec"> <a href="libunistring_toc.html#TOC85">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a> </h2>
+<a name="SEC91"></a>
+<h2 class="appendixsec"> <a href="libunistring_toc.html#TOC87">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a> </h2>
<p align="center"> Version 3, 29 June 2007
</p>
@@ -1023,8 +1023,8 @@ Library.
<hr size="6">
<a name="GNU-FDL"></a>
-<a name="SEC90"></a>
-<h2 class="appendixsec"> <a href="libunistring_toc.html#TOC86">C.3 GNU Free Documentation License</a> </h2>
+<a name="SEC92"></a>
+<h2 class="appendixsec"> <a href="libunistring_toc.html#TOC88">C.3 GNU Free Documentation License</a> </h2>
<p align="center"> Version 1.3, 3 November 2008
</p>
@@ -1485,7 +1485,7 @@ provided the MMC is eligible for relicensing.
</li></ol>
-<a name="SEC91"></a>
+<a name="SEC93"></a>
<h2 class="heading"> ADDENDUM: How to use this License for your documents </h2>
<p>To use this License in a document you have written, include a copy of
@@ -1521,8 +1521,8 @@ to permit their use in free software.
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC83" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC85" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -1530,12 +1530,12 @@ to permit their use in free software.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_21.html b/doc/libunistring_21.html
index 37dada3b..b283df2b 100644
--- a/doc/libunistring_21.html
+++ b/doc/libunistring_21.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -42,7 +42,7 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_20.html#SEC83" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_20.html#SEC85" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="libunistring_22.html#INDEX0" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,759 +51,245 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="Index"></a>
-<a name="SEC92"></a>
-<h1 class="unnumbered"> <a href="libunistring_toc.html#TOC87">Index</a> </h1>
+<a name="SEC94"></a>
+<h1 class="unnumbered"> <a href="libunistring_toc.html#TOC89">Index</a> </h1>
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC92_0" class="summary-letter"><b>A</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC94_0" class="summary-letter"><b>A</b></a>
&nbsp;
-<a href="#SEC92_1" class="summary-letter"><b>B</b></a>
+<a href="#SEC94_1" class="summary-letter"><b>B</b></a>
&nbsp;
-<a href="#SEC92_2" class="summary-letter"><b>C</b></a>
+<a href="#SEC94_2" class="summary-letter"><b>C</b></a>
&nbsp;
-<a href="#SEC92_3" class="summary-letter"><b>D</b></a>
+<a href="#SEC94_3" class="summary-letter"><b>D</b></a>
&nbsp;
-<a href="#SEC92_4" class="summary-letter"><b>E</b></a>
+<a href="#SEC94_4" class="summary-letter"><b>E</b></a>
&nbsp;
-<a href="#SEC92_5" class="summary-letter"><b>F</b></a>
+<a href="#SEC94_5" class="summary-letter"><b>F</b></a>
&nbsp;
-<a href="#SEC92_6" class="summary-letter"><b>G</b></a>
+<a href="#SEC94_6" class="summary-letter"><b>G</b></a>
&nbsp;
-<a href="#SEC92_7" class="summary-letter"><b>H</b></a>
+<a href="#SEC94_7" class="summary-letter"><b>H</b></a>
&nbsp;
-<a href="#SEC92_8" class="summary-letter"><b>I</b></a>
+<a href="#SEC94_8" class="summary-letter"><b>I</b></a>
&nbsp;
-<a href="#SEC92_9" class="summary-letter"><b>J</b></a>
+<a href="#SEC94_9" class="summary-letter"><b>J</b></a>
&nbsp;
-<a href="#SEC92_10" class="summary-letter"><b>L</b></a>
+<a href="#SEC94_10" class="summary-letter"><b>L</b></a>
&nbsp;
-<a href="#SEC92_11" class="summary-letter"><b>M</b></a>
+<a href="#SEC94_11" class="summary-letter"><b>M</b></a>
&nbsp;
-<a href="#SEC92_12" class="summary-letter"><b>N</b></a>
+<a href="#SEC94_12" class="summary-letter"><b>N</b></a>
&nbsp;
-<a href="#SEC92_13" class="summary-letter"><b>O</b></a>
+<a href="#SEC94_13" class="summary-letter"><b>O</b></a>
&nbsp;
-<a href="#SEC92_14" class="summary-letter"><b>P</b></a>
+<a href="#SEC94_14" class="summary-letter"><b>P</b></a>
&nbsp;
-<a href="#SEC92_15" class="summary-letter"><b>R</b></a>
+<a href="#SEC94_15" class="summary-letter"><b>R</b></a>
&nbsp;
-<a href="#SEC92_16" class="summary-letter"><b>S</b></a>
+<a href="#SEC94_16" class="summary-letter"><b>S</b></a>
&nbsp;
-<a href="#SEC92_17" class="summary-letter"><b>T</b></a>
+<a href="#SEC94_17" class="summary-letter"><b>T</b></a>
&nbsp;
-<a href="#SEC92_18" class="summary-letter"><b>U</b></a>
+<a href="libunistring_22.html#INDEX0_0" class="summary-letter"><b>U</b></a>
&nbsp;
-<a href="libunistring_22.html#INDEX0_0" class="summary-letter"><b>V</b></a>
+<a href="libunistring_23.html#INDEX1_0" class="summary-letter"><b>V</b></a>
&nbsp;
-<a href="libunistring_22.html#INDEX0_1" class="summary-letter"><b>W</b></a>
+<a href="libunistring_23.html#INDEX1_1" class="summary-letter"><b>W</b></a>
&nbsp;
</td></tr></table>
<table border="0" class="index-cp">
<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_0">A</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX758">ambiguous width</a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><th><a name="SEC94_0">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX776">ambiguous width</a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC43">Arabic shaping</a></td><td valign="top"><a href="libunistring_8.html#SEC43">8.8 Arabic shaping</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_2.html#IDX14">argument conventions</a></td><td valign="top"><a href="libunistring_2.html#SEC8">2. Conventions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC78">autoconf macro</a></td><td valign="top"><a href="libunistring_16.html#SEC78">16.4 Autoconf macro</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC80">autoconf macro</a></td><td valign="top"><a href="libunistring_16.html#SEC80">16.4 Autoconf macro</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_1">B</a></th><td></td><td></td></tr>
+<tr><th><a name="SEC94_1">B</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">bidi class</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">bidirectional category</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC80">bidirectional reordering</a></td><td valign="top"><a href="libunistring_17.html#SEC80">17. More advanced functionality</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC50">block</a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.11 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC54">boundaries, between grapheme clusters</a></td><td valign="top"><a href="libunistring_10.html#SEC54">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC57">boundaries, between words</a></td><td valign="top"><a href="libunistring_11.html#SEC57">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC54">breaks, grapheme cluster</a></td><td valign="top"><a href="libunistring_10.html#SEC54">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC60">breaks, line</a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC57">breaks, word</a></td><td valign="top"><a href="libunistring_11.html#SEC57">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC79">bug reports</a></td><td valign="top"><a href="libunistring_16.html#SEC79">16.5 Reporting problems</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC79">bug tracker</a></td><td valign="top"><a href="libunistring_16.html#SEC79">16.5 Reporting problems</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC82">bidirectional reordering</a></td><td valign="top"><a href="libunistring_17.html#SEC82">17. More advanced functionality</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC52">block</a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.12 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC56">boundaries, between grapheme clusters</a></td><td valign="top"><a href="libunistring_10.html#SEC56">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC59">boundaries, between words</a></td><td valign="top"><a href="libunistring_11.html#SEC59">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC56">breaks, grapheme cluster</a></td><td valign="top"><a href="libunistring_10.html#SEC56">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC62">breaks, line</a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC59">breaks, word</a></td><td valign="top"><a href="libunistring_11.html#SEC59">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC81">bug reports</a></td><td valign="top"><a href="libunistring_16.html#SEC81">16.5 Reporting problems</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC81">bug tracker</a></td><td valign="top"><a href="libunistring_16.html#SEC81">16.5 Reporting problems</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_2">C</a></th><td></td><td></td></tr>
+<tr><th><a name="SEC94_2">C</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_1.html#SEC6">C string functions</a></td><td valign="top"><a href="libunistring_1.html#SEC6">1.5 &lsquo;<samp>char *</samp>&rsquo; strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC51">C, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC52">C-like API</a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC53">C, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC54">C-like API</a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC37">canonical combining class</a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC72">case detection</a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC69">case mappings</a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX903"><code>casing_prefix_context_t</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX911"><code>casing_suffix_context_t</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC74">case detection</a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC71">case mappings</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX921"><code>casing_prefix_context_t</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX929"><code>casing_suffix_context_t</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX10">char, type</a></td><td valign="top"><a href="libunistring_1.html#SEC6">1.5 &lsquo;<samp>char *</samp>&rsquo; strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_19.html#SEC82">char16_t, type</a></td><td valign="top"><a href="libunistring_19.html#SEC82">B. The <code>char32_t</code> problem</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_19.html#SEC82">char32_t, type</a></td><td valign="top"><a href="libunistring_19.html#SEC82">B. The <code>char32_t</code> problem</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC63">combining, Unicode characters</a></td><td valign="top"><a href="libunistring_13.html#SEC63">13.2 Composition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_19.html#SEC84">char16_t, type</a></td><td valign="top"><a href="libunistring_19.html#SEC84">B. The <code>char32_t</code> problem</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_19.html#SEC84">char32_t, type</a></td><td valign="top"><a href="libunistring_19.html#SEC84">B. The <code>char32_t</code> problem</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC65">combining, Unicode characters</a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.2 Composition of Unicode characters</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC17">comparing</a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC25">comparing</a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC71">comparing, ignoring case</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX938">comparing, ignoring case, with collation rules</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC65">comparing, ignoring normalization</a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC71">comparing, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX940">comparing, ignoring normalization and case, with collation rules</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX876">comparing, ignoring normalization, with collation rules</a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX108">comparing, with collation rules</a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX939">comparing, with collation rules, ignoring case</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX877">comparing, with collation rules, ignoring normalization</a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX941">comparing, with collation rules, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX966">compiler options</a></td><td valign="top"><a href="libunistring_16.html#SEC76">16.2 Compiler options</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC63">composing, Unicode characters</a></td><td valign="top"><a href="libunistring_13.html#SEC63">13.2 Composition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC73">comparing, ignoring case</a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX956">comparing, ignoring case, with collation rules</a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC67">comparing, ignoring normalization</a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC73">comparing, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX958">comparing, ignoring normalization and case, with collation rules</a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX894">comparing, ignoring normalization, with collation rules</a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX111">comparing, with collation rules</a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX957">comparing, with collation rules, ignoring case</a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX895">comparing, with collation rules, ignoring normalization</a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX959">comparing, with collation rules, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX984">compiler options</a></td><td valign="top"><a href="libunistring_16.html#SEC78">16.2 Compiler options</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC65">composing, Unicode characters</a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.2 Composition of Unicode characters</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC12">converting</a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX152">converting</a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX155">converting</a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC16">copying</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC24">copying</a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC19">counting</a></td><td valign="top"><a href="libunistring_4.html#SEC19">4.3.6 Counting the characters in a Unicode string</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_3">D</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC62">decomposing</a></td><td valign="top"><a href="libunistring_13.html#SEC62">13.1 Decomposition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC75">dependencies</a></td><td valign="top"><a href="libunistring_16.html#SEC75">16.1 Installation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC72">detecting case</a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
+<tr><th><a name="SEC94_3">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC64">decomposing</a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.1 Decomposition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC77">dependencies</a></td><td valign="top"><a href="libunistring_16.html#SEC77">16.1 Installation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC74">detecting case</a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC20">duplicating</a></td><td valign="top"><a href="libunistring_4.html#SEC20">4.4 Elementary string functions with memory allocation</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC26">duplicating</a></td><td valign="top"><a href="libunistring_4.html#SEC26">4.5.5 Duplicating a NUL terminated Unicode string</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_4">E</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX147"><code>enum iconv_ilseq_handler</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><th><a name="SEC94_4">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX150"><code>enum iconv_ilseq_handler</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_5">F</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC90">FDL, GNU Free Documentation License</a></td><td valign="top"><a href="libunistring_20.html#SEC90">C.3 GNU Free Documentation License</a></td></tr>
+<tr><th><a name="SEC94_5">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC92">FDL, GNU Free Documentation License</a></td><td valign="top"><a href="libunistring_20.html#SEC92">C.3 GNU Free Documentation License</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_6.html#SEC31">formatted output</a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX761">fullwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX779">fullwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_6">G</a></th><td></td><td></td></tr>
+<tr><th><a name="SEC94_6">G</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC34">general category</a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.1 General category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX969"><code>gl_LIBUNISTRING</code></a></td><td valign="top"><a href="libunistring_16.html#SEC78">16.4 Autoconf macro</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC84">GPL, GNU General Public License</a></td><td valign="top"><a href="libunistring_20.html#SEC84">C.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC54">grapheme cluster boundaries</a></td><td valign="top"><a href="libunistring_10.html#SEC54">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC54">grapheme cluster breaks</a></td><td valign="top"><a href="libunistring_10.html#SEC54">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX988"><code>gl_LIBUNISTRING</code></a></td><td valign="top"><a href="libunistring_16.html#SEC80">16.4 Autoconf macro</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC86">GPL, GNU General Public License</a></td><td valign="top"><a href="libunistring_20.html#SEC86">C.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC56">grapheme cluster boundaries</a></td><td valign="top"><a href="libunistring_10.html#SEC56">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC56">grapheme cluster breaks</a></td><td valign="top"><a href="libunistring_10.html#SEC56">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_7">H</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX760">halfwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><th><a name="SEC94_7">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX778">halfwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_8">I</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC51">identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX965">installation</a></td><td valign="top"><a href="libunistring_16.html#SEC75">16.1 Installation</a></td></tr>
+<tr><th><a name="SEC94_8">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC53">identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC50">Indic_Conjunct_Break</a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.10.1 Indic conjunct break</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX983">installation</a></td><td valign="top"><a href="libunistring_16.html#SEC77">16.1 Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_1.html#SEC3">internationalization</a></td><td valign="top"><a href="libunistring_1.html#SEC3">1.2 Unicode and Internationalization</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC14">iterating</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX71">iterating</a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX74">iterating</a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_9">J</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC51">Java, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
+<tr><th><a name="SEC94_9">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC53">Java, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC45">joining group</a></td><td valign="top"><a href="libunistring_8.html#SEC45">8.8.2 Joining group of Arabic characters</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC43">joining of Arabic characters</a></td><td valign="top"><a href="libunistring_8.html#SEC43">8.8 Arabic shaping</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC44">joining type</a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_10">L</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC89">LGPL, GNU Lesser General Public License</a></td><td valign="top"><a href="libunistring_20.html#SEC89">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC90">License, GNU FDL</a></td><td valign="top"><a href="libunistring_20.html#SEC90">C.3 GNU Free Documentation License</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC84">License, GNU GPL</a></td><td valign="top"><a href="libunistring_20.html#SEC84">C.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC89">License, GNU LGPL</a></td><td valign="top"><a href="libunistring_20.html#SEC89">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC83">Licenses</a></td><td valign="top"><a href="libunistring_20.html#SEC83">C. Licenses</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC60">line breaks</a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><th><a name="SEC94_10">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC91">LGPL, GNU Lesser General Public License</a></td><td valign="top"><a href="libunistring_20.html#SEC91">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC92">License, GNU FDL</a></td><td valign="top"><a href="libunistring_20.html#SEC92">C.3 GNU Free Documentation License</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC86">License, GNU GPL</a></td><td valign="top"><a href="libunistring_20.html#SEC86">C.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC91">License, GNU LGPL</a></td><td valign="top"><a href="libunistring_20.html#SEC91">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_20.html#SEC85">Licenses</a></td><td valign="top"><a href="libunistring_20.html#SEC85">C. Licenses</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC62">line breaks</a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_1.html#SEC4">locale</a></td><td valign="top"><a href="libunistring_1.html#SEC4">1.3 Locale encodings</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX7">locale categories</a></td><td valign="top"><a href="libunistring_1.html#SEC4">1.3 Locale encodings</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX8">locale encoding</a></td><td valign="top"><a href="libunistring_1.html#SEC4">1.3 Locale encodings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX145">locale encoding</a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX892">locale language</a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX148">locale encoding</a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX910">locale language</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX9">locale, multibyte</a></td><td valign="top"><a href="libunistring_1.html#SEC6">1.5 &lsquo;<samp>char *</samp>&rsquo; strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX146"><code>locale_charset</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC69">lowercasing</a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX149"><code>locale_charset</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC71">lowercasing</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_11">M</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC79">mailing list</a></td><td valign="top"><a href="libunistring_16.html#SEC79">16.5 Reporting problems</a></td></tr>
+<tr><th><a name="SEC94_11">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC81">mailing list</a></td><td valign="top"><a href="libunistring_16.html#SEC81">16.5 Reporting problems</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC42">mirroring, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC42">8.7 Mirrored character</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_12">N</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC61">normal forms</a></td><td valign="top"><a href="libunistring_13.html#SEC61">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC61">normalizing</a></td><td valign="top"><a href="libunistring_13.html#SEC61">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a></td></tr>
+<tr><th><a name="SEC94_12">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC63">normal forms</a></td><td valign="top"><a href="libunistring_13.html#SEC63">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC63">normalizing</a></td><td valign="top"><a href="libunistring_13.html#SEC63">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_13">O</a></th><td></td><td></td></tr>
+<tr><th><a name="SEC94_13">O</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_6.html#SEC31">output, formatted</a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_14">P</a></th><td></td><td></td></tr>
+<tr><th><a name="SEC94_14">P</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC46">properties, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC46">8.9 Properties</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_15">R</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC73">regular expression</a></td><td valign="top"><a href="libunistring_15.html#SEC73">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#IDX970">rendering</a></td><td valign="top"><a href="libunistring_17.html#SEC80">17. More advanced functionality</a></td></tr>
+<tr><th><a name="SEC94_15">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC75">regular expression</a></td><td valign="top"><a href="libunistring_15.html#SEC75">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_17.html#IDX989">rendering</a></td><td valign="top"><a href="libunistring_17.html#SEC82">17. More advanced functionality</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_2.html#IDX15">return value conventions</a></td><td valign="top"><a href="libunistring_2.html#SEC8">2. Conventions</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_16">S</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC49">scripts</a></td><td valign="top"><a href="libunistring_8.html#SEC49">8.10 Scripts</a></td></tr>
+<tr><th><a name="SEC94_16">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC51">scripts</a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.11 Scripts</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC18">searching, for a character</a></td><td valign="top"><a href="libunistring_4.html#SEC18">4.3.5 Searching for a character in a Unicode string</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC27">searching, for a character</a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC28">searching, for a substring</a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC66">stream, normalizing a</a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX884"><code>struct uninorm_filter</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC68">stream, normalizing a</a></td><td valign="top"><a href="libunistring_13.html#SEC68">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX902"><code>struct uninorm_filter</code></a></td><td valign="top"><a href="libunistring_13.html#SEC68">13.5 Normalization of streams of Unicode characters</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_17">T</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC69">titlecasing</a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC92_18">U</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX198"><code>u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX197"><code>u16_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX935"><code>u16_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX947"><code>u16_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX929"><code>u16_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX943"><code>u16_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX906"><code>u16_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX909"><code>u16_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX914"><code>u16_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX917"><code>u16_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX21"><code>u16_check</code></a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX60"><code>u16_chr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC18">4.3.5 Searching for a character in a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX54"><code>u16_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX57"><code>u16_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX154"><code>u16_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX157"><code>u16_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX45"><code>u16_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX66"><code>u16_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC20">4.4 Elementary string functions with memory allocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX932"><code>u16_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX923"><code>u16_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX926"><code>u16_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX920"><code>u16_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX140"><code>u16_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX776"><code>u16_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX770"><code>u16_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX773"><code>u16_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX963"><code>u16_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX960"><code>u16_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX954"><code>u16_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX957"><code>u16_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX951"><code>u16_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX30"><code>u16_mblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX63"><code>u16_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC19">4.3.6 Counting the characters in a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX33"><code>u16_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX36"><code>u16_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX39"><code>u16_mbtoucr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX48"><code>u16_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX76"><code>u16_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX871"><code>u16_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX874"><code>u16_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX882"><code>u16_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX879"><code>u16_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX834"><code>u16_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX79"><code>u16_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX51"><code>u16_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX196"><code>u16_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX195"><code>u16_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX137"><code>u16_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX91"><code>u16_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX97"><code>u16_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX100"><code>u16_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX119"><code>u16_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX106"><code>u16_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX110"><code>u16_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX160"><code>u16_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX166"><code>u16_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX163"><code>u16_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX169"><code>u16_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX88"><code>u16_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX125"><code>u16_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX116"><code>u16_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC26">4.5.5 Duplicating a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX82"><code>u16_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX69"><code>u16_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX73"><code>u16_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX103"><code>u16_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX113"><code>u16_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX94"><code>u16_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX85"><code>u16_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX131"><code>u16_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX122"><code>u16_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX128"><code>u16_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX134"><code>u16_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX143"><code>u16_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC29">4.5.8 Tokenizing a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX767"><code>u16_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX26"><code>u16_to_u32</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX25"><code>u16_to_u8</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX898"><code>u16_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX901"><code>u16_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX895"><code>u16_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX206"><code>u16_u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX205"><code>u16_u16_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX204"><code>u16_u16_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX203"><code>u16_u16_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX210"><code>u16_u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX209"><code>u16_u16_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX208"><code>u16_u16_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX207"><code>u16_u16_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX42"><code>u16_uctomb</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.3.2 Creating Unicode strings one character at a time</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX202"><code>u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX201"><code>u16_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX200"><code>u16_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX199"><code>u16_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX764"><code>u16_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX838"><code>u16_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX801"><code>u16_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC58">11.1 Word breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX214"><code>u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX213"><code>u32_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX936"><code>u32_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX948"><code>u32_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX930"><code>u32_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX944"><code>u32_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX907"><code>u32_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX910"><code>u32_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX915"><code>u32_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX918"><code>u32_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX22"><code>u32_check</code></a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX61"><code>u32_chr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC18">4.3.5 Searching for a character in a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX55"><code>u32_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX58"><code>u32_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX155"><code>u32_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX158"><code>u32_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX46"><code>u32_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX67"><code>u32_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC20">4.4 Elementary string functions with memory allocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX933"><code>u32_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX924"><code>u32_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX927"><code>u32_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX921"><code>u32_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX141"><code>u32_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX777"><code>u32_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX771"><code>u32_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX774"><code>u32_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX964"><code>u32_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX961"><code>u32_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX955"><code>u32_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX958"><code>u32_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX952"><code>u32_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX31"><code>u32_mblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX64"><code>u32_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC19">4.3.6 Counting the characters in a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX34"><code>u32_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX37"><code>u32_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX40"><code>u32_mbtoucr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX49"><code>u32_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX77"><code>u32_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX872"><code>u32_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX875"><code>u32_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX883"><code>u32_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX880"><code>u32_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX835"><code>u32_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX80"><code>u32_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX52"><code>u32_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX212"><code>u32_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX211"><code>u32_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX138"><code>u32_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX92"><code>u32_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX98"><code>u32_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX101"><code>u32_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX120"><code>u32_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX107"><code>u32_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX111"><code>u32_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX161"><code>u32_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX167"><code>u32_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX164"><code>u32_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX170"><code>u32_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX89"><code>u32_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX126"><code>u32_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX117"><code>u32_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC26">4.5.5 Duplicating a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX83"><code>u32_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX70"><code>u32_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX74"><code>u32_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX104"><code>u32_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX114"><code>u32_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX95"><code>u32_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX86"><code>u32_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX132"><code>u32_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX123"><code>u32_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX129"><code>u32_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX135"><code>u32_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX144"><code>u32_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC29">4.5.8 Tokenizing a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX768"><code>u32_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX28"><code>u32_to_u16</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX27"><code>u32_to_u8</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX899"><code>u32_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX902"><code>u32_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX896"><code>u32_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX222"><code>u32_u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX221"><code>u32_u32_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX220"><code>u32_u32_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX219"><code>u32_u32_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX226"><code>u32_u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX225"><code>u32_u32_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX224"><code>u32_u32_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX223"><code>u32_u32_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX43"><code>u32_uctomb</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.3.2 Creating Unicode strings one character at a time</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX218"><code>u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX217"><code>u32_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX216"><code>u32_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX215"><code>u32_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX765"><code>u32_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX839"><code>u32_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX802"><code>u32_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC58">11.1 Word breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX182"><code>u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX181"><code>u8_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX934"><code>u8_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX946"><code>u8_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX928"><code>u8_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX942"><code>u8_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX905"><code>u8_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX908"><code>u8_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX913"><code>u8_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX916"><code>u8_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX20"><code>u8_check</code></a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX59"><code>u8_chr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC18">4.3.5 Searching for a character in a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX53"><code>u8_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX56"><code>u8_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX153"><code>u8_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX156"><code>u8_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX44"><code>u8_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX65"><code>u8_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC20">4.4 Elementary string functions with memory allocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX931"><code>u8_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX922"><code>u8_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX925"><code>u8_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX919"><code>u8_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX139"><code>u8_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX775"><code>u8_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX769"><code>u8_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX772"><code>u8_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX962"><code>u8_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX959"><code>u8_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX953"><code>u8_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX956"><code>u8_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX950"><code>u8_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX29"><code>u8_mblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX62"><code>u8_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC19">4.3.6 Counting the characters in a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX32"><code>u8_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX35"><code>u8_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX38"><code>u8_mbtoucr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX47"><code>u8_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX75"><code>u8_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX870"><code>u8_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX873"><code>u8_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX881"><code>u8_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX878"><code>u8_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX833"><code>u8_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX78"><code>u8_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX50"><code>u8_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX180"><code>u8_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX179"><code>u8_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX136"><code>u8_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX90"><code>u8_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX96"><code>u8_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX99"><code>u8_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX118"><code>u8_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX105"><code>u8_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX109"><code>u8_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX159"><code>u8_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX165"><code>u8_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX162"><code>u8_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX168"><code>u8_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX87"><code>u8_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX124"><code>u8_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX115"><code>u8_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC26">4.5.5 Duplicating a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX81"><code>u8_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX68"><code>u8_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX72"><code>u8_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX102"><code>u8_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX112"><code>u8_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX93"><code>u8_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX84"><code>u8_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX130"><code>u8_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX121"><code>u8_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX127"><code>u8_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX133"><code>u8_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX142"><code>u8_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC29">4.5.8 Tokenizing a NUL terminated Unicode string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX766"><code>u8_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX23"><code>u8_to_u16</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX24"><code>u8_to_u32</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX897"><code>u8_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX900"><code>u8_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX894"><code>u8_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX190"><code>u8_u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX189"><code>u8_u8_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX188"><code>u8_u8_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX187"><code>u8_u8_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX194"><code>u8_u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX193"><code>u8_u8_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX192"><code>u8_u8_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX191"><code>u8_u8_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX41"><code>u8_uctomb</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.3.2 Creating Unicode strings one character at a time</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX186"><code>u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX185"><code>u8_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX184"><code>u8_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX183"><code>u8_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX763"><code>u8_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX837"><code>u8_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX800"><code>u8_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC58">11.1 Word breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX735"><code>uc_all_blocks</code></a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.11 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX730"><code>uc_all_scripts</code></a></td><td valign="top"><a href="libunistring_8.html#SEC49">8.10 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX410"><code>uc_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX408"><code>uc_bidi_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX405"><code>uc_bidi_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX409"><code>uc_bidi_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX407"><code>uc_bidi_class_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX406"><code>uc_bidi_class_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX404"><code>uc_bidi_class_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX733"><code>uc_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.11 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX731"><code>uc_block_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.11 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX743"><code>uc_c_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX860"><code>uc_canonical_decomposition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC62">13.1 Decomposition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX380"><code>uc_combining_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX379"><code>uc_combining_class_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX378"><code>uc_combining_class_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX377"><code>uc_combining_class_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX861"><code>uc_composition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC63">13.2 Composition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX413"><code>uc_decimal_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.4 Decimal digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX859"><code>uc_decomposition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC62">13.1 Decomposition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX414"><code>uc_digit_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC40">8.5 Digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX415"><code>uc_fraction_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX316"><code>uc_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX311"><code>uc_general_category_and</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX312"><code>uc_general_category_and_not</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX315"><code>uc_general_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX314"><code>uc_general_category_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX313"><code>uc_general_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX310"><code>uc_general_category_or</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX233"><code>uc_general_category_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX779"><code>uc_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX798"><code>uc_graphemeclusterbreak_property</code></a></td><td valign="top"><a href="libunistring_10.html#SEC56">10.2 Grapheme cluster break property</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX746"><code>uc_is_alnum</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX747"><code>uc_is_alpha</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX412"><code>uc_is_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX411"><code>uc_is_bidi_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX757"><code>uc_is_blank</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX734"><code>uc_is_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.11 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX736"><code>uc_is_c_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX748"><code>uc_is_cntrl</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX749"><code>uc_is_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX317"><code>uc_is_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX356"><code>uc_is_general_category_withtable</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.1.2 The bit mask API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX750"><code>uc_is_graph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX799"><code>uc_is_grapheme_break</code></a></td><td valign="top"><a href="libunistring_10.html#SEC56">10.2 Grapheme cluster break property</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX737"><code>uc_is_java_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX751"><code>uc_is_lower</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX752"><code>uc_is_print</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX631"><code>uc_is_property</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX633"><code>uc_is_property_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX687"><code>uc_is_property_ascii_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX676"><code>uc_is_property_bidi_arabic_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX672"><code>uc_is_property_bidi_arabic_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX678"><code>uc_is_property_bidi_block_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX682"><code>uc_is_property_bidi_boundary_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX677"><code>uc_is_property_bidi_common_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX669"><code>uc_is_property_bidi_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX684"><code>uc_is_property_bidi_embedding_or_override</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX674"><code>uc_is_property_bidi_eur_num_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX675"><code>uc_is_property_bidi_eur_num_terminator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX673"><code>uc_is_property_bidi_european_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX671"><code>uc_is_property_bidi_hebrew_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX670"><code>uc_is_property_bidi_left_to_right</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX681"><code>uc_is_property_bidi_non_spacing_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX685"><code>uc_is_property_bidi_other_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX683"><code>uc_is_property_bidi_pdf</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX679"><code>uc_is_property_bidi_segment_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX680"><code>uc_is_property_bidi_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX649"><code>uc_is_property_case_ignorable</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX648"><code>uc_is_property_cased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX653"><code>uc_is_property_changes_when_casefolded</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX654"><code>uc_is_property_changes_when_casemapped</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX650"><code>uc_is_property_changes_when_lowercased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX652"><code>uc_is_property_changes_when_titlecased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX651"><code>uc_is_property_changes_when_uppercased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX717"><code>uc_is_property_combining</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX718"><code>uc_is_property_composite</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX712"><code>uc_is_property_currency_symbol</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX704"><code>uc_is_property_dash</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX719"><code>uc_is_property_decimal_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX636"><code>uc_is_property_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX638"><code>uc_is_property_deprecated</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX721"><code>uc_is_property_diacritic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX693"><code>uc_is_property_emoji</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX697"><code>uc_is_property_emoji_component</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX695"><code>uc_is_property_emoji_modifier</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX696"><code>uc_is_property_emoji_modifier_base</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX694"><code>uc_is_property_emoji_presentation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX698"><code>uc_is_property_extended_pictographic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX722"><code>uc_is_property_extender</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX703"><code>uc_is_property_format_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX665"><code>uc_is_property_grapheme_base</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX666"><code>uc_is_property_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX668"><code>uc_is_property_grapheme_link</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX686"><code>uc_is_property_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX705"><code>uc_is_property_hyphen</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX658"><code>uc_is_property_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX656"><code>uc_is_property_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX688"><code>uc_is_property_ideographic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX691"><code>uc_is_property_ids_binary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX692"><code>uc_is_property_ids_trinary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX723"><code>uc_is_property_ignorable_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX702"><code>uc_is_property_iso_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX664"><code>uc_is_property_join_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX716"><code>uc_is_property_left_of_pair</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX707"><code>uc_is_property_line_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX639"><code>uc_is_property_logical_order_exception</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX645"><code>uc_is_property_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX713"><code>uc_is_property_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX701"><code>uc_is_property_non_break</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX635"><code>uc_is_property_not_a_character</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX720"><code>uc_is_property_numeric</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX634"><code>uc_is_property_other_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX637"><code>uc_is_property_other_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX667"><code>uc_is_property_other_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX659"><code>uc_is_property_other_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX657"><code>uc_is_property_other_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX646"><code>uc_is_property_other_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX714"><code>uc_is_property_other_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX644"><code>uc_is_property_other_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX715"><code>uc_is_property_paired_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX708"><code>uc_is_property_paragraph_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX663"><code>uc_is_property_pattern_syntax</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX662"><code>uc_is_property_pattern_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX641"><code>uc_is_property_private_use</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX706"><code>uc_is_property_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX709"><code>uc_is_property_quotation_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX690"><code>uc_is_property_radical</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX724"><code>uc_is_property_regional_indicator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX710"><code>uc_is_property_sentence_terminal</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX655"><code>uc_is_property_soft_dotted</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX700"><code>uc_is_property_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX711"><code>uc_is_property_terminal_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX647"><code>uc_is_property_titlecase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX642"><code>uc_is_property_unassigned_code_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX689"><code>uc_is_property_unified_ideograph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX643"><code>uc_is_property_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX640"><code>uc_is_property_variation_selector</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX632"><code>uc_is_property_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX661"><code>uc_is_property_xid_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX660"><code>uc_is_property_xid_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX699"><code>uc_is_property_zero_width</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX753"><code>uc_is_punct</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX729"><code>uc_is_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC49">8.10 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX754"><code>uc_is_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX755"><code>uc_is_upper</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX756"><code>uc_is_xdigit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX745"><code>uc_java_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX534"><code>uc_joining_group</code></a></td><td valign="top"><a href="libunistring_8.html#SEC45">8.8.2 Joining group of Arabic characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX533"><code>uc_joining_group_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC45">8.8.2 Joining group of Arabic characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX532"><code>uc_joining_group_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC45">8.8.2 Joining group of Arabic characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX427"><code>uc_joining_type</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX426"><code>uc_joining_type_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX425"><code>uc_joining_type_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX424"><code>uc_joining_type_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX893"><code>uc_locale_language</code></a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX417"><code>uc_mirror_char</code></a></td><td valign="top"><a href="libunistring_8.html#SEC42">8.7 Mirrored character</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX416"><code>uc_numeric_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX629"><code>uc_property_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX630"><code>uc_property_is_valid</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX535"><code>uc_property_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX727"><code>uc_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC49">8.10 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX728"><code>uc_script_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC49">8.10 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX725"><code>uc_script_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC49">8.10 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX890"><code>uc_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC68">14.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX891"><code>uc_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC68">14.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX889"><code>uc_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC68">14.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX762"><code>uc_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX826"><code>uc_wordbreak_property</code></a></td><td valign="top"><a href="libunistring_11.html#SEC59">11.2 Word break property</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX6">UCS-4</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX19"><code>ucs4_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX17"><code>uint16_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX18"><code>uint32_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX16"><code>uint8_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX174"><code>ulc_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX173"><code>ulc_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX937"><code>ulc_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX949"><code>ulc_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX945"><code>ulc_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX227"><code>ulc_fprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX778"><code>ulc_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX836"><code>ulc_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX172"><code>ulc_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX171"><code>ulc_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX178"><code>ulc_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX177"><code>ulc_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX228"><code>ulc_vfprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX176"><code>ulc_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX175"><code>ulc_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX840"><code>ulc_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX803"><code>ulc_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC58">11.1 Word breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#SEC2">Unicode</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">Unicode character, bidi class</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">Unicode character, bidirectional category</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX732">Unicode character, block</a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.11 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC37">Unicode character, canonical combining class</a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC68">Unicode character, case mappings</a></td><td valign="top"><a href="libunistring_14.html#SEC68">14.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC34">Unicode character, classification</a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.1 General category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC52">Unicode character, classification like in C</a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC34">Unicode character, general category</a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.1 General category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC42">Unicode character, mirroring</a></td><td valign="top"><a href="libunistring_8.html#SEC42">8.7 Mirrored character</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_7.html#SEC32">Unicode character, name</a></td><td valign="top"><a href="libunistring_7.html#SEC32">7. Names of Unicode characters <code>&lt;uniname.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC46">Unicode character, properties</a></td><td valign="top"><a href="libunistring_8.html#SEC46">8.9 Properties</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX726">Unicode character, script</a></td><td valign="top"><a href="libunistring_8.html#SEC49">8.10 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX742">Unicode character, validity in C identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX744">Unicode character, validity in Java identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC39">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.4 Decimal digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC40">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC40">8.5 Digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC41">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX759">Unicode character, width</a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_7.html#IDX230"><code>unicode_character_name</code></a></td><td valign="top"><a href="libunistring_7.html#SEC32">7. Names of Unicode characters <code>&lt;uniname.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_7.html#IDX231"><code>unicode_name_character</code></a></td><td valign="top"><a href="libunistring_7.html#SEC32">7. Names of Unicode characters <code>&lt;uniname.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX869"><code>uninorm_decomposing_form</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX885"><code>uninorm_filter_create</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX887"><code>uninorm_filter_flush</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX888"><code>uninorm_filter_free</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX886"><code>uninorm_filter_write</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX867"><code>uninorm_is_compat_decomposing</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX868"><code>uninorm_is_composing</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX862"><code>uninorm_t</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC69">uppercasing</a></td><td valign="top"><a href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX1">use cases</a></td><td valign="top"><a href="libunistring_1.html#SEC1">1. Introduction</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX4">UTF-16</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX12">UTF-16, strings</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX5">UTF-32</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX13">UTF-32, strings</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 Unicode strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX3">UTF-8</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX11">UTF-8, strings</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 Unicode strings</a></td></tr>
+<tr><th><a name="SEC94_17">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC71">titlecasing</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
</table>
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC92_0" class="summary-letter"><b>A</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC94_0" class="summary-letter"><b>A</b></a>
&nbsp;
-<a href="#SEC92_1" class="summary-letter"><b>B</b></a>
+<a href="#SEC94_1" class="summary-letter"><b>B</b></a>
&nbsp;
-<a href="#SEC92_2" class="summary-letter"><b>C</b></a>
+<a href="#SEC94_2" class="summary-letter"><b>C</b></a>
&nbsp;
-<a href="#SEC92_3" class="summary-letter"><b>D</b></a>
+<a href="#SEC94_3" class="summary-letter"><b>D</b></a>
&nbsp;
-<a href="#SEC92_4" class="summary-letter"><b>E</b></a>
+<a href="#SEC94_4" class="summary-letter"><b>E</b></a>
&nbsp;
-<a href="#SEC92_5" class="summary-letter"><b>F</b></a>
+<a href="#SEC94_5" class="summary-letter"><b>F</b></a>
&nbsp;
-<a href="#SEC92_6" class="summary-letter"><b>G</b></a>
+<a href="#SEC94_6" class="summary-letter"><b>G</b></a>
&nbsp;
-<a href="#SEC92_7" class="summary-letter"><b>H</b></a>
+<a href="#SEC94_7" class="summary-letter"><b>H</b></a>
&nbsp;
-<a href="#SEC92_8" class="summary-letter"><b>I</b></a>
+<a href="#SEC94_8" class="summary-letter"><b>I</b></a>
&nbsp;
-<a href="#SEC92_9" class="summary-letter"><b>J</b></a>
+<a href="#SEC94_9" class="summary-letter"><b>J</b></a>
&nbsp;
-<a href="#SEC92_10" class="summary-letter"><b>L</b></a>
+<a href="#SEC94_10" class="summary-letter"><b>L</b></a>
&nbsp;
-<a href="#SEC92_11" class="summary-letter"><b>M</b></a>
+<a href="#SEC94_11" class="summary-letter"><b>M</b></a>
&nbsp;
-<a href="#SEC92_12" class="summary-letter"><b>N</b></a>
+<a href="#SEC94_12" class="summary-letter"><b>N</b></a>
&nbsp;
-<a href="#SEC92_13" class="summary-letter"><b>O</b></a>
+<a href="#SEC94_13" class="summary-letter"><b>O</b></a>
&nbsp;
-<a href="#SEC92_14" class="summary-letter"><b>P</b></a>
+<a href="#SEC94_14" class="summary-letter"><b>P</b></a>
&nbsp;
-<a href="#SEC92_15" class="summary-letter"><b>R</b></a>
+<a href="#SEC94_15" class="summary-letter"><b>R</b></a>
&nbsp;
-<a href="#SEC92_16" class="summary-letter"><b>S</b></a>
+<a href="#SEC94_16" class="summary-letter"><b>S</b></a>
&nbsp;
-<a href="#SEC92_17" class="summary-letter"><b>T</b></a>
+<a href="#SEC94_17" class="summary-letter"><b>T</b></a>
&nbsp;
-<a href="#SEC92_18" class="summary-letter"><b>U</b></a>
+<a href="libunistring_22.html#INDEX0_0" class="summary-letter"><b>U</b></a>
&nbsp;
-<a href="libunistring_22.html#INDEX0_0" class="summary-letter"><b>V</b></a>
+<a href="libunistring_23.html#INDEX1_0" class="summary-letter"><b>V</b></a>
&nbsp;
-<a href="libunistring_22.html#INDEX0_1" class="summary-letter"><b>W</b></a>
+<a href="libunistring_23.html#INDEX1_1" class="summary-letter"><b>W</b></a>
&nbsp;
</td></tr></table>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_20.html#SEC83" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_20.html#SEC85" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
<td valign="middle" align="left">[<a href="libunistring_22.html#INDEX0" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -812,12 +298,12 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_22.html b/doc/libunistring_22.html
index 2ee8afa1..b153d464 100644
--- a/doc/libunistring_22.html
+++ b/doc/libunistring_22.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -11,10 +11,10 @@ Send bugs and suggestions to <texi2html-bug@nongnu.org>
-->
<head>
-<title>GNU libunistring: Index: V &ndash; W</title>
+<title>GNU libunistring: Index: U</title>
-<meta name="description" content="GNU libunistring: Index: V &ndash; W">
-<meta name="keywords" content="GNU libunistring: Index: V &ndash; W">
+<meta name="description" content="GNU libunistring: Index: U">
+<meta name="keywords" content="GNU libunistring: Index: U">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2html 1.78a">
@@ -42,8 +42,8 @@ ul.toc {list-style: none}
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_23.html#INDEX1" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,124 +51,632 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="INDEX0"></a>
-<h1 class="unnumbered"> Index: V &ndash; W </h1>
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="libunistring_21.html#SEC92_0" class="summary-letter"><b>A</b></a>
+<h1 class="unnumbered"> Index: U </h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="libunistring_21.html#SEC94_0" class="summary-letter"><b>A</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_1" class="summary-letter"><b>B</b></a>
+<a href="libunistring_21.html#SEC94_1" class="summary-letter"><b>B</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_2" class="summary-letter"><b>C</b></a>
+<a href="libunistring_21.html#SEC94_2" class="summary-letter"><b>C</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_3" class="summary-letter"><b>D</b></a>
+<a href="libunistring_21.html#SEC94_3" class="summary-letter"><b>D</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_4" class="summary-letter"><b>E</b></a>
+<a href="libunistring_21.html#SEC94_4" class="summary-letter"><b>E</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_5" class="summary-letter"><b>F</b></a>
+<a href="libunistring_21.html#SEC94_5" class="summary-letter"><b>F</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_6" class="summary-letter"><b>G</b></a>
+<a href="libunistring_21.html#SEC94_6" class="summary-letter"><b>G</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_7" class="summary-letter"><b>H</b></a>
+<a href="libunistring_21.html#SEC94_7" class="summary-letter"><b>H</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_8" class="summary-letter"><b>I</b></a>
+<a href="libunistring_21.html#SEC94_8" class="summary-letter"><b>I</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_9" class="summary-letter"><b>J</b></a>
+<a href="libunistring_21.html#SEC94_9" class="summary-letter"><b>J</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_10" class="summary-letter"><b>L</b></a>
+<a href="libunistring_21.html#SEC94_10" class="summary-letter"><b>L</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_11" class="summary-letter"><b>M</b></a>
+<a href="libunistring_21.html#SEC94_11" class="summary-letter"><b>M</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_12" class="summary-letter"><b>N</b></a>
+<a href="libunistring_21.html#SEC94_12" class="summary-letter"><b>N</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_13" class="summary-letter"><b>O</b></a>
+<a href="libunistring_21.html#SEC94_13" class="summary-letter"><b>O</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_14" class="summary-letter"><b>P</b></a>
+<a href="libunistring_21.html#SEC94_14" class="summary-letter"><b>P</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_15" class="summary-letter"><b>R</b></a>
+<a href="libunistring_21.html#SEC94_15" class="summary-letter"><b>R</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_16" class="summary-letter"><b>S</b></a>
+<a href="libunistring_21.html#SEC94_16" class="summary-letter"><b>S</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_17" class="summary-letter"><b>T</b></a>
+<a href="libunistring_21.html#SEC94_17" class="summary-letter"><b>T</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_18" class="summary-letter"><b>U</b></a>
+<a href="#INDEX0_0" class="summary-letter"><b>U</b></a>
&nbsp;
-<a href="#INDEX0_0" class="summary-letter"><b>V</b></a>
+<a href="libunistring_23.html#INDEX1_0" class="summary-letter"><b>V</b></a>
&nbsp;
-<a href="#INDEX0_1" class="summary-letter"><b>W</b></a>
+<a href="libunistring_23.html#INDEX1_1" class="summary-letter"><b>W</b></a>
&nbsp;
</td></tr></table>
<table border="0" class="index-cp">
<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="INDEX0_0">V</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC11">validity</a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX2">value, of libunistring</a></td><td valign="top"><a href="libunistring_1.html#SEC1">1. Introduction</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC39">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.4 Decimal digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC40">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC40">8.5 Digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC41">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC11">verification</a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="INDEX0_1">W</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC81">wchar_t, type</a></td><td valign="top"><a href="libunistring_18.html#SEC81">A. The <code>wchar_t</code> mess</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC11">well-formed</a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#SEC53">width</a></td><td valign="top"><a href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC57">word boundaries</a></td><td valign="top"><a href="libunistring_11.html#SEC57">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC57">word breaks</a></td><td valign="top"><a href="libunistring_11.html#SEC57">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC60">wrapping</a></td><td valign="top"><a href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><th><a name="INDEX0_0">U</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX201"><code>u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX200"><code>u16_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX953"><code>u16_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX965"><code>u16_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX947"><code>u16_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX961"><code>u16_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX924"><code>u16_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX927"><code>u16_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX932"><code>u16_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX935"><code>u16_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX21"><code>u16_check</code></a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX63"><code>u16_chr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC18">4.3.5 Searching for a character in a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX57"><code>u16_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX60"><code>u16_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX157"><code>u16_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX160"><code>u16_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX45"><code>u16_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX69"><code>u16_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC20">4.4 Elementary string functions with memory allocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX950"><code>u16_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX941"><code>u16_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX944"><code>u16_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX938"><code>u16_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX143"><code>u16_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX794"><code>u16_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX788"><code>u16_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX791"><code>u16_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX981"><code>u16_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX978"><code>u16_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX972"><code>u16_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX975"><code>u16_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX969"><code>u16_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX30"><code>u16_mblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX66"><code>u16_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC19">4.3.6 Counting the characters in a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX33"><code>u16_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX36"><code>u16_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX39"><code>u16_mbtoucr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX51"><code>u16_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX79"><code>u16_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX889"><code>u16_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX892"><code>u16_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX900"><code>u16_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX897"><code>u16_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX48"><code>u16_pcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX852"><code>u16_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX82"><code>u16_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX54"><code>u16_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX199"><code>u16_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX198"><code>u16_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX140"><code>u16_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX94"><code>u16_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX100"><code>u16_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX103"><code>u16_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX122"><code>u16_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX109"><code>u16_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX113"><code>u16_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX163"><code>u16_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX169"><code>u16_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX166"><code>u16_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX172"><code>u16_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX91"><code>u16_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX128"><code>u16_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX119"><code>u16_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC26">4.5.5 Duplicating a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX85"><code>u16_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX72"><code>u16_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX76"><code>u16_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX106"><code>u16_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX116"><code>u16_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX97"><code>u16_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX88"><code>u16_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX134"><code>u16_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX125"><code>u16_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX131"><code>u16_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX137"><code>u16_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX146"><code>u16_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC29">4.5.8 Tokenizing a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX785"><code>u16_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX26"><code>u16_to_u32</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX25"><code>u16_to_u8</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX916"><code>u16_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX919"><code>u16_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX913"><code>u16_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX209"><code>u16_u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX208"><code>u16_u16_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX207"><code>u16_u16_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX206"><code>u16_u16_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX213"><code>u16_u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX212"><code>u16_u16_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX211"><code>u16_u16_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX210"><code>u16_u16_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX42"><code>u16_uctomb</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.3.2 Creating Unicode strings one character at a time</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX205"><code>u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX204"><code>u16_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX203"><code>u16_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX202"><code>u16_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX782"><code>u16_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX856"><code>u16_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX819"><code>u16_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC60">11.1 Word breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX217"><code>u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX216"><code>u32_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX954"><code>u32_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX966"><code>u32_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX948"><code>u32_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX962"><code>u32_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX925"><code>u32_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX928"><code>u32_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX933"><code>u32_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX936"><code>u32_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX22"><code>u32_check</code></a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX64"><code>u32_chr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC18">4.3.5 Searching for a character in a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX58"><code>u32_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX61"><code>u32_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX158"><code>u32_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX161"><code>u32_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX46"><code>u32_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX70"><code>u32_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC20">4.4 Elementary string functions with memory allocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX951"><code>u32_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX942"><code>u32_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX945"><code>u32_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX939"><code>u32_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX144"><code>u32_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX795"><code>u32_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX789"><code>u32_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX792"><code>u32_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX982"><code>u32_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX979"><code>u32_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX973"><code>u32_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX976"><code>u32_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX970"><code>u32_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX31"><code>u32_mblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX67"><code>u32_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC19">4.3.6 Counting the characters in a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX34"><code>u32_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX37"><code>u32_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX40"><code>u32_mbtoucr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX52"><code>u32_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX80"><code>u32_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX890"><code>u32_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX893"><code>u32_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX901"><code>u32_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX898"><code>u32_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX49"><code>u32_pcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX853"><code>u32_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX83"><code>u32_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX55"><code>u32_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX215"><code>u32_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX214"><code>u32_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX141"><code>u32_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX95"><code>u32_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX101"><code>u32_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX104"><code>u32_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX123"><code>u32_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX110"><code>u32_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX114"><code>u32_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX164"><code>u32_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX170"><code>u32_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX167"><code>u32_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX173"><code>u32_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX92"><code>u32_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX129"><code>u32_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX120"><code>u32_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC26">4.5.5 Duplicating a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX86"><code>u32_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX73"><code>u32_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX77"><code>u32_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX107"><code>u32_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX117"><code>u32_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX98"><code>u32_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX89"><code>u32_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX135"><code>u32_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX126"><code>u32_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX132"><code>u32_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX138"><code>u32_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX147"><code>u32_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC29">4.5.8 Tokenizing a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX786"><code>u32_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX28"><code>u32_to_u16</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX27"><code>u32_to_u8</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX917"><code>u32_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX920"><code>u32_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX914"><code>u32_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX225"><code>u32_u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX224"><code>u32_u32_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX223"><code>u32_u32_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX222"><code>u32_u32_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX229"><code>u32_u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX228"><code>u32_u32_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX227"><code>u32_u32_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX226"><code>u32_u32_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX43"><code>u32_uctomb</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.3.2 Creating Unicode strings one character at a time</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX221"><code>u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX220"><code>u32_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX219"><code>u32_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX218"><code>u32_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX783"><code>u32_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX857"><code>u32_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX820"><code>u32_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC60">11.1 Word breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX185"><code>u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX184"><code>u8_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX952"><code>u8_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX964"><code>u8_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX946"><code>u8_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX960"><code>u8_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX923"><code>u8_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX926"><code>u8_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX931"><code>u8_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX934"><code>u8_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX20"><code>u8_check</code></a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX62"><code>u8_chr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC18">4.3.5 Searching for a character in a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX56"><code>u8_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX59"><code>u8_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC17">4.3.4 Comparing Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX156"><code>u8_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX159"><code>u8_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX44"><code>u8_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX68"><code>u8_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC20">4.4 Elementary string functions with memory allocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX949"><code>u8_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX940"><code>u8_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX943"><code>u8_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX937"><code>u8_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX142"><code>u8_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX793"><code>u8_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX787"><code>u8_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX790"><code>u8_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX980"><code>u8_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX977"><code>u8_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX971"><code>u8_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX974"><code>u8_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX968"><code>u8_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC74">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX29"><code>u8_mblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX65"><code>u8_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC19">4.3.6 Counting the characters in a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX32"><code>u8_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX35"><code>u8_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX38"><code>u8_mbtoucr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3.1 Iterating over a Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX50"><code>u8_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX78"><code>u8_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX888"><code>u8_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX891"><code>u8_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX899"><code>u8_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX896"><code>u8_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX47"><code>u8_pcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX851"><code>u8_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX81"><code>u8_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX53"><code>u8_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.3.3 Copying Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX183"><code>u8_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX182"><code>u8_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX139"><code>u8_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX93"><code>u8_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX99"><code>u8_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX102"><code>u8_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX121"><code>u8_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX108"><code>u8_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX112"><code>u8_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX162"><code>u8_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX168"><code>u8_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX165"><code>u8_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX171"><code>u8_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC30">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX90"><code>u8_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX127"><code>u8_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX118"><code>u8_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC26">4.5.5 Duplicating a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX84"><code>u8_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX71"><code>u8_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX75"><code>u8_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC22">4.5.1 Iterating over a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX105"><code>u8_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX115"><code>u8_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC25">4.5.4 Comparing NUL terminated Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX96"><code>u8_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC24">4.5.3 Copying a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX87"><code>u8_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC23">4.5.2 Length of a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX133"><code>u8_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX124"><code>u8_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX130"><code>u8_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC27">4.5.6 Searching for a character in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX136"><code>u8_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC28">4.5.7 Searching for a substring in a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX145"><code>u8_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC29">4.5.8 Tokenizing a NUL terminated Unicode string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX784"><code>u8_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX23"><code>u8_to_u16</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX24"><code>u8_to_u32</code></a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX915"><code>u8_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX918"><code>u8_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX912"><code>u8_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX193"><code>u8_u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX192"><code>u8_u8_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX191"><code>u8_u8_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX190"><code>u8_u8_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX197"><code>u8_u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX196"><code>u8_u8_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX195"><code>u8_u8_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX194"><code>u8_u8_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX41"><code>u8_uctomb</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.3.2 Creating Unicode strings one character at a time</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX189"><code>u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX188"><code>u8_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX187"><code>u8_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX186"><code>u8_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX781"><code>u8_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX855"><code>u8_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX818"><code>u8_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC60">11.1 Word breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX753"><code>uc_all_blocks</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.12 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX748"><code>uc_all_scripts</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.11 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX413"><code>uc_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX411"><code>uc_bidi_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX408"><code>uc_bidi_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX412"><code>uc_bidi_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX410"><code>uc_bidi_class_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX409"><code>uc_bidi_class_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX407"><code>uc_bidi_class_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX751"><code>uc_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.12 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX749"><code>uc_block_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.12 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX761"><code>uc_c_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX878"><code>uc_canonical_decomposition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.1 Decomposition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX383"><code>uc_combining_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX382"><code>uc_combining_class_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX381"><code>uc_combining_class_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX380"><code>uc_combining_class_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX879"><code>uc_composition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC65">13.2 Composition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX416"><code>uc_decimal_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.4 Decimal digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX877"><code>uc_decomposition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC64">13.1 Decomposition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX417"><code>uc_digit_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC40">8.5 Digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX418"><code>uc_fraction_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX319"><code>uc_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX314"><code>uc_general_category_and</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX315"><code>uc_general_category_and_not</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX318"><code>uc_general_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX317"><code>uc_general_category_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX316"><code>uc_general_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX313"><code>uc_general_category_or</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX236"><code>uc_general_category_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX797"><code>uc_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX816"><code>uc_graphemeclusterbreak_property</code></a></td><td valign="top"><a href="libunistring_10.html#SEC58">10.2 Grapheme cluster break property</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX742"><code>uc_indic_conjunct_break</code></a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.10.1 Indic conjunct break</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX741"><code>uc_indic_conjunct_break_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.10.1 Indic conjunct break</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX740"><code>uc_indic_conjunct_break_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC50">8.10.1 Indic conjunct break</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX764"><code>uc_is_alnum</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX765"><code>uc_is_alpha</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX415"><code>uc_is_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX414"><code>uc_is_bidi_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX775"><code>uc_is_blank</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX752"><code>uc_is_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.12 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX754"><code>uc_is_c_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX766"><code>uc_is_cntrl</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX767"><code>uc_is_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX320"><code>uc_is_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX359"><code>uc_is_general_category_withtable</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.1.2 The bit mask API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX768"><code>uc_is_graph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX817"><code>uc_is_grapheme_break</code></a></td><td valign="top"><a href="libunistring_10.html#SEC58">10.2 Grapheme cluster break property</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX755"><code>uc_is_java_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX769"><code>uc_is_lower</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX770"><code>uc_is_print</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX638"><code>uc_is_property</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX640"><code>uc_is_property_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX696"><code>uc_is_property_ascii_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX685"><code>uc_is_property_bidi_arabic_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX681"><code>uc_is_property_bidi_arabic_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX687"><code>uc_is_property_bidi_block_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX691"><code>uc_is_property_bidi_boundary_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX686"><code>uc_is_property_bidi_common_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX678"><code>uc_is_property_bidi_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX693"><code>uc_is_property_bidi_embedding_or_override</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX683"><code>uc_is_property_bidi_eur_num_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX684"><code>uc_is_property_bidi_eur_num_terminator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX682"><code>uc_is_property_bidi_european_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX680"><code>uc_is_property_bidi_hebrew_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX679"><code>uc_is_property_bidi_left_to_right</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX690"><code>uc_is_property_bidi_non_spacing_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX694"><code>uc_is_property_bidi_other_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX692"><code>uc_is_property_bidi_pdf</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX688"><code>uc_is_property_bidi_segment_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX689"><code>uc_is_property_bidi_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX656"><code>uc_is_property_case_ignorable</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX655"><code>uc_is_property_cased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX660"><code>uc_is_property_changes_when_casefolded</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX661"><code>uc_is_property_changes_when_casemapped</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX657"><code>uc_is_property_changes_when_lowercased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX659"><code>uc_is_property_changes_when_titlecased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX658"><code>uc_is_property_changes_when_uppercased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX728"><code>uc_is_property_combining</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX729"><code>uc_is_property_composite</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX723"><code>uc_is_property_currency_symbol</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX715"><code>uc_is_property_dash</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX730"><code>uc_is_property_decimal_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX643"><code>uc_is_property_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX645"><code>uc_is_property_deprecated</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX732"><code>uc_is_property_diacritic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX703"><code>uc_is_property_emoji</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX707"><code>uc_is_property_emoji_component</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX705"><code>uc_is_property_emoji_modifier</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX706"><code>uc_is_property_emoji_modifier_base</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX704"><code>uc_is_property_emoji_presentation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX708"><code>uc_is_property_extended_pictographic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX733"><code>uc_is_property_extender</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX713"><code>uc_is_property_format_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX674"><code>uc_is_property_grapheme_base</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX675"><code>uc_is_property_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX677"><code>uc_is_property_grapheme_link</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX695"><code>uc_is_property_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX716"><code>uc_is_property_hyphen</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX670"><code>uc_is_property_id_compat_math_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX669"><code>uc_is_property_id_compat_math_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX665"><code>uc_is_property_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX663"><code>uc_is_property_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX697"><code>uc_is_property_ideographic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX701"><code>uc_is_property_ids_binary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX702"><code>uc_is_property_ids_trinary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX700"><code>uc_is_property_ids_unary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX734"><code>uc_is_property_ignorable_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX712"><code>uc_is_property_iso_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX673"><code>uc_is_property_join_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX727"><code>uc_is_property_left_of_pair</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX718"><code>uc_is_property_line_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX646"><code>uc_is_property_logical_order_exception</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX652"><code>uc_is_property_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX724"><code>uc_is_property_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX711"><code>uc_is_property_non_break</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX642"><code>uc_is_property_not_a_character</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX731"><code>uc_is_property_numeric</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX641"><code>uc_is_property_other_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX644"><code>uc_is_property_other_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX676"><code>uc_is_property_other_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX666"><code>uc_is_property_other_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX664"><code>uc_is_property_other_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX653"><code>uc_is_property_other_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX725"><code>uc_is_property_other_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX651"><code>uc_is_property_other_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX726"><code>uc_is_property_paired_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX719"><code>uc_is_property_paragraph_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX672"><code>uc_is_property_pattern_syntax</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX671"><code>uc_is_property_pattern_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX714"><code>uc_is_property_prepended_concatenation_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX648"><code>uc_is_property_private_use</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX717"><code>uc_is_property_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX720"><code>uc_is_property_quotation_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX699"><code>uc_is_property_radical</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX735"><code>uc_is_property_regional_indicator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX721"><code>uc_is_property_sentence_terminal</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX662"><code>uc_is_property_soft_dotted</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX710"><code>uc_is_property_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX722"><code>uc_is_property_terminal_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX654"><code>uc_is_property_titlecase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX649"><code>uc_is_property_unassigned_code_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX698"><code>uc_is_property_unified_ideograph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX650"><code>uc_is_property_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX647"><code>uc_is_property_variation_selector</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX639"><code>uc_is_property_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX668"><code>uc_is_property_xid_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX667"><code>uc_is_property_xid_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX709"><code>uc_is_property_zero_width</code></a></td><td valign="top"><a href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX771"><code>uc_is_punct</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX747"><code>uc_is_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.11 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX772"><code>uc_is_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX773"><code>uc_is_upper</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX774"><code>uc_is_xdigit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX763"><code>uc_java_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX537"><code>uc_joining_group</code></a></td><td valign="top"><a href="libunistring_8.html#SEC45">8.8.2 Joining group of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX536"><code>uc_joining_group_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC45">8.8.2 Joining group of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX535"><code>uc_joining_group_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC45">8.8.2 Joining group of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX430"><code>uc_joining_type</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX429"><code>uc_joining_type_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX428"><code>uc_joining_type_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX427"><code>uc_joining_type_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC44">8.8.1 Joining type of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX911"><code>uc_locale_language</code></a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX420"><code>uc_mirror_char</code></a></td><td valign="top"><a href="libunistring_8.html#SEC42">8.7 Mirrored character</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX419"><code>uc_numeric_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX636"><code>uc_property_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX637"><code>uc_property_is_valid</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX538"><code>uc_property_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX745"><code>uc_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.11 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX746"><code>uc_script_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.11 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX743"><code>uc_script_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.11 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX908"><code>uc_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX909"><code>uc_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX907"><code>uc_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX780"><code>uc_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX844"><code>uc_wordbreak_property</code></a></td><td valign="top"><a href="libunistring_11.html#SEC61">11.2 Word break property</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX6">UCS-4</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX19"><code>ucs4_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX17"><code>uint16_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX18"><code>uint32_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_3.html#IDX16"><code>uint8_t</code></a></td><td valign="top"><a href="libunistring_3.html#SEC9">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX177"><code>ulc_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX176"><code>ulc_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX955"><code>ulc_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX967"><code>ulc_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX963"><code>ulc_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX230"><code>ulc_fprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX796"><code>ulc_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX854"><code>ulc_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX175"><code>ulc_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX174"><code>ulc_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX181"><code>ulc_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX180"><code>ulc_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX231"><code>ulc_vfprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX179"><code>ulc_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX178"><code>ulc_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC31">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX858"><code>ulc_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX821"><code>ulc_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC60">11.1 Word breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#SEC2">Unicode</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">Unicode character, bidi class</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">Unicode character, bidirectional category</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX750">Unicode character, block</a></td><td valign="top"><a href="libunistring_8.html#SEC52">8.12 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC37">Unicode character, canonical combining class</a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC70">Unicode character, case mappings</a></td><td valign="top"><a href="libunistring_14.html#SEC70">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC34">Unicode character, classification</a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.1 General category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC54">Unicode character, classification like in C</a></td><td valign="top"><a href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC34">Unicode character, general category</a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.1 General category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC42">Unicode character, mirroring</a></td><td valign="top"><a href="libunistring_8.html#SEC42">8.7 Mirrored character</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_7.html#SEC32">Unicode character, name</a></td><td valign="top"><a href="libunistring_7.html#SEC32">7. Names of Unicode characters <code>&lt;uniname.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC46">Unicode character, properties</a></td><td valign="top"><a href="libunistring_8.html#SEC46">8.9 Properties</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX744">Unicode character, script</a></td><td valign="top"><a href="libunistring_8.html#SEC51">8.11 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX760">Unicode character, validity in C identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX762">Unicode character, validity in Java identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC39">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.4 Decimal digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC40">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC40">8.5 Digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC41">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX777">Unicode character, width</a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_7.html#IDX233"><code>unicode_character_name</code></a></td><td valign="top"><a href="libunistring_7.html#SEC32">7. Names of Unicode characters <code>&lt;uniname.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_7.html#IDX234"><code>unicode_name_character</code></a></td><td valign="top"><a href="libunistring_7.html#SEC32">7. Names of Unicode characters <code>&lt;uniname.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX887"><code>uninorm_decomposing_form</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX903"><code>uninorm_filter_create</code></a></td><td valign="top"><a href="libunistring_13.html#SEC68">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX905"><code>uninorm_filter_flush</code></a></td><td valign="top"><a href="libunistring_13.html#SEC68">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX906"><code>uninorm_filter_free</code></a></td><td valign="top"><a href="libunistring_13.html#SEC68">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX904"><code>uninorm_filter_write</code></a></td><td valign="top"><a href="libunistring_13.html#SEC68">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX885"><code>uninorm_is_compat_decomposing</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX886"><code>uninorm_is_composing</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX880"><code>uninorm_t</code></a></td><td valign="top"><a href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC71">uppercasing</a></td><td valign="top"><a href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX1">use cases</a></td><td valign="top"><a href="libunistring_1.html#SEC1">1. Introduction</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX4">UTF-16</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX12">UTF-16, strings</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX5">UTF-32</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX13">UTF-32, strings</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 Unicode strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX3">UTF-8</a></td><td valign="top"><a href="libunistring_1.html#SEC2">1.1 Unicode</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX11">UTF-8, strings</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 Unicode strings</a></td></tr>
<tr><td colspan="3"> <hr></td></tr>
</table>
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="libunistring_21.html#SEC92_0" class="summary-letter"><b>A</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="libunistring_21.html#SEC94_0" class="summary-letter"><b>A</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_1" class="summary-letter"><b>B</b></a>
+<a href="libunistring_21.html#SEC94_1" class="summary-letter"><b>B</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_2" class="summary-letter"><b>C</b></a>
+<a href="libunistring_21.html#SEC94_2" class="summary-letter"><b>C</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_3" class="summary-letter"><b>D</b></a>
+<a href="libunistring_21.html#SEC94_3" class="summary-letter"><b>D</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_4" class="summary-letter"><b>E</b></a>
+<a href="libunistring_21.html#SEC94_4" class="summary-letter"><b>E</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_5" class="summary-letter"><b>F</b></a>
+<a href="libunistring_21.html#SEC94_5" class="summary-letter"><b>F</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_6" class="summary-letter"><b>G</b></a>
+<a href="libunistring_21.html#SEC94_6" class="summary-letter"><b>G</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_7" class="summary-letter"><b>H</b></a>
+<a href="libunistring_21.html#SEC94_7" class="summary-letter"><b>H</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_8" class="summary-letter"><b>I</b></a>
+<a href="libunistring_21.html#SEC94_8" class="summary-letter"><b>I</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_9" class="summary-letter"><b>J</b></a>
+<a href="libunistring_21.html#SEC94_9" class="summary-letter"><b>J</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_10" class="summary-letter"><b>L</b></a>
+<a href="libunistring_21.html#SEC94_10" class="summary-letter"><b>L</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_11" class="summary-letter"><b>M</b></a>
+<a href="libunistring_21.html#SEC94_11" class="summary-letter"><b>M</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_12" class="summary-letter"><b>N</b></a>
+<a href="libunistring_21.html#SEC94_12" class="summary-letter"><b>N</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_13" class="summary-letter"><b>O</b></a>
+<a href="libunistring_21.html#SEC94_13" class="summary-letter"><b>O</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_14" class="summary-letter"><b>P</b></a>
+<a href="libunistring_21.html#SEC94_14" class="summary-letter"><b>P</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_15" class="summary-letter"><b>R</b></a>
+<a href="libunistring_21.html#SEC94_15" class="summary-letter"><b>R</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_16" class="summary-letter"><b>S</b></a>
+<a href="libunistring_21.html#SEC94_16" class="summary-letter"><b>S</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_17" class="summary-letter"><b>T</b></a>
+<a href="libunistring_21.html#SEC94_17" class="summary-letter"><b>T</b></a>
&nbsp;
-<a href="libunistring_21.html#SEC92_18" class="summary-letter"><b>U</b></a>
+<a href="#INDEX0_0" class="summary-letter"><b>U</b></a>
&nbsp;
-<a href="#INDEX0_0" class="summary-letter"><b>V</b></a>
+<a href="libunistring_23.html#INDEX1_0" class="summary-letter"><b>V</b></a>
&nbsp;
-<a href="#INDEX0_1" class="summary-letter"><b>W</b></a>
+<a href="libunistring_23.html#INDEX1_1" class="summary-letter"><b>W</b></a>
&nbsp;
</td></tr></table>
-
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_23.html#INDEX1" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -176,12 +684,12 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_23.html b/doc/libunistring_23.html
new file mode 100644
index 00000000..cea7ad59
--- /dev/null
+++ b/doc/libunistring_23.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
+<!--
+Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
+ Karl Berry <karl@freefriends.org>
+ Olaf Bachmann <obachman@mathematik.uni-kl.de>
+ and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug@nongnu.org>
+
+-->
+<head>
+<title>GNU libunistring: Index: V &ndash; W</title>
+
+<meta name="description" content="GNU libunistring: Index: V &ndash; W">
+<meta name="keywords" content="GNU libunistring: Index: V &ndash; W">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.78a">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="libunistring_22.html#INDEX0" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<hr size="2">
+<a name="INDEX1"></a>
+<h1 class="unnumbered"> Index: V &ndash; W </h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="libunistring_21.html#SEC94_0" class="summary-letter"><b>A</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_1" class="summary-letter"><b>B</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_2" class="summary-letter"><b>C</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_3" class="summary-letter"><b>D</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_4" class="summary-letter"><b>E</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_5" class="summary-letter"><b>F</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_6" class="summary-letter"><b>G</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_7" class="summary-letter"><b>H</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_8" class="summary-letter"><b>I</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_9" class="summary-letter"><b>J</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_10" class="summary-letter"><b>L</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_11" class="summary-letter"><b>M</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_12" class="summary-letter"><b>N</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_13" class="summary-letter"><b>O</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_14" class="summary-letter"><b>P</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_15" class="summary-letter"><b>R</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_16" class="summary-letter"><b>S</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_17" class="summary-letter"><b>T</b></a>
+ &nbsp;
+<a href="libunistring_22.html#INDEX0_0" class="summary-letter"><b>U</b></a>
+ &nbsp;
+<a href="#INDEX1_0" class="summary-letter"><b>V</b></a>
+ &nbsp;
+<a href="#INDEX1_1" class="summary-letter"><b>W</b></a>
+ &nbsp;
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="INDEX1_0">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC11">validity</a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_1.html#IDX2">value, of libunistring</a></td><td valign="top"><a href="libunistring_1.html#SEC1">1. Introduction</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC39">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.4 Decimal digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC40">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC40">8.5 Digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC41">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC41">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC11">verification</a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="INDEX1_1">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC83">wchar_t, type</a></td><td valign="top"><a href="libunistring_18.html#SEC83">A. The <code>wchar_t</code> mess</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC11">well-formed</a></td><td valign="top"><a href="libunistring_4.html#SEC11">4.1 Elementary string checks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#SEC55">width</a></td><td valign="top"><a href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC59">word boundaries</a></td><td valign="top"><a href="libunistring_11.html#SEC59">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC59">word breaks</a></td><td valign="top"><a href="libunistring_11.html#SEC59">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC62">wrapping</a></td><td valign="top"><a href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="libunistring_21.html#SEC94_0" class="summary-letter"><b>A</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_1" class="summary-letter"><b>B</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_2" class="summary-letter"><b>C</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_3" class="summary-letter"><b>D</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_4" class="summary-letter"><b>E</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_5" class="summary-letter"><b>F</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_6" class="summary-letter"><b>G</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_7" class="summary-letter"><b>H</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_8" class="summary-letter"><b>I</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_9" class="summary-letter"><b>J</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_10" class="summary-letter"><b>L</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_11" class="summary-letter"><b>M</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_12" class="summary-letter"><b>N</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_13" class="summary-letter"><b>O</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_14" class="summary-letter"><b>P</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_15" class="summary-letter"><b>R</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_16" class="summary-letter"><b>S</b></a>
+ &nbsp;
+<a href="libunistring_21.html#SEC94_17" class="summary-letter"><b>T</b></a>
+ &nbsp;
+<a href="libunistring_22.html#INDEX0_0" class="summary-letter"><b>U</b></a>
+ &nbsp;
+<a href="#INDEX1_0" class="summary-letter"><b>V</b></a>
+ &nbsp;
+<a href="#INDEX1_1" class="summary-letter"><b>W</b></a>
+ &nbsp;
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="libunistring_22.html#INDEX0" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/doc/libunistring_3.html b/doc/libunistring_3.html
index 33ac3f5e..e052e3f8 100644
--- a/doc/libunistring_3.html
+++ b/doc/libunistring_3.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -105,12 +105,12 @@ declared to take <code>ucs4_t</code> arguments will not perform such a range-che
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_4.html b/doc/libunistring_4.html
index 1b77f26f..44dbb24c 100644
--- a/doc/libunistring_4.html
+++ b/doc/libunistring_4.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -297,15 +297,32 @@ Unicode strings.
</p></dd></dl>
<dl>
-<dt><u>Function:</u> uint8_t * <b>u8_move</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
+<dt><u>Function:</u> uint8_t * <b>u8_pcpy</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
<a name="IDX47"></a>
</dt>
-<dt><u>Function:</u> uint16_t * <b>u16_move</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
+<dt><u>Function:</u> uint16_t * <b>u16_pcpy</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
<a name="IDX48"></a>
</dt>
-<dt><u>Function:</u> uint32_t * <b>u32_move</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
+<dt><u>Function:</u> uint32_t * <b>u32_pcpy</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
<a name="IDX49"></a>
</dt>
+<dd><p>Copies <var>n</var> units from <var>src</var> to <var>dest</var>, returning a pointer
+after the last written unit.
+</p>
+<p>This function is similar to <code>mempcpy</code>, except that it operates on
+Unicode strings.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_move</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
+<a name="IDX50"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_move</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
+<a name="IDX51"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_move</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
+<a name="IDX52"></a>
+</dt>
<dd><p>Copies <var>n</var> units from <var>src</var> to <var>dest</var>, guaranteeing correct
behavior for overlapping memory areas.
</p>
@@ -317,13 +334,13 @@ Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_set</b><i> (uint8_t&nbsp;*<var>s</var>, ucs4_t&nbsp;<var>uc</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX50"></a>
+<a name="IDX53"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_set</b><i> (uint16_t&nbsp;*<var>s</var>, ucs4_t&nbsp;<var>uc</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX51"></a>
+<a name="IDX54"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_set</b><i> (uint32_t&nbsp;*<var>s</var>, ucs4_t&nbsp;<var>uc</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX52"></a>
+<a name="IDX55"></a>
</dt>
<dd><p>Sets the first <var>n</var> characters of <var>s</var> to <var>uc</var>. <var>uc</var> should be
a character that occupies only 1 unit.
@@ -341,13 +358,13 @@ Unicode strings.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_cmp</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX53"></a>
+<a name="IDX56"></a>
</dt>
<dt><u>Function:</u> int <b>u16_cmp</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX54"></a>
+<a name="IDX57"></a>
</dt>
<dt><u>Function:</u> int <b>u32_cmp</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX55"></a>
+<a name="IDX58"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var>, each of length <var>n</var>, lexicographically.
Returns a negative value if <var>s1</var> compares smaller than <var>s2</var>,
@@ -363,13 +380,13 @@ lengths.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_cmp2</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>)</i>
-<a name="IDX56"></a>
+<a name="IDX59"></a>
</dt>
<dt><u>Function:</u> int <b>u16_cmp2</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>)</i>
-<a name="IDX57"></a>
+<a name="IDX60"></a>
</dt>
<dt><u>Function:</u> int <b>u32_cmp2</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, size_t&nbsp;<var>n1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n2</var>)</i>
-<a name="IDX58"></a>
+<a name="IDX61"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var>, lexicographically.
Returns a negative value if <var>s1</var> compares smaller than <var>s2</var>,
@@ -389,13 +406,13 @@ operates on Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_chr</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX59"></a>
+<a name="IDX62"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_chr</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX60"></a>
+<a name="IDX63"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_chr</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX61"></a>
+<a name="IDX64"></a>
</dt>
<dd><p>Searches the string at <var>s</var> for <var>uc</var>. Returns a pointer to the first
occurrence of <var>uc</var> in <var>s</var>, or NULL if <var>uc</var> does not occur in
@@ -414,13 +431,13 @@ Unicode strings.
</p>
<dl>
<dt><u>Function:</u> size_t <b>u8_mbsnlen</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX62"></a>
+<a name="IDX65"></a>
</dt>
<dt><u>Function:</u> size_t <b>u16_mbsnlen</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX63"></a>
+<a name="IDX66"></a>
</dt>
<dt><u>Function:</u> size_t <b>u32_mbsnlen</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX64"></a>
+<a name="IDX67"></a>
</dt>
<dd><p>Counts and returns the number of Unicode characters in the <var>n</var> units
from <var>s</var>.
@@ -438,13 +455,13 @@ it operates on Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_cpy_alloc</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX65"></a>
+<a name="IDX68"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_cpy_alloc</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX66"></a>
+<a name="IDX69"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_cpy_alloc</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX67"></a>
+<a name="IDX70"></a>
</dt>
<dd><p>Makes a freshly allocated copy of <var>s</var>, of length <var>n</var>.
</p></dd></dl>
@@ -465,28 +482,28 @@ in a Unicode string.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_strmblen</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>)</i>
-<a name="IDX68"></a>
+<a name="IDX71"></a>
</dt>
<dt><u>Function:</u> int <b>u16_strmblen</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>)</i>
-<a name="IDX69"></a>
+<a name="IDX72"></a>
</dt>
<dt><u>Function:</u> int <b>u32_strmblen</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>)</i>
-<a name="IDX70"></a>
+<a name="IDX73"></a>
</dt>
<dd><p>Returns the length (number of units) of the first character in <var>s</var>.
Returns 0 if it is the NUL character. Returns -1 upon failure.
</p></dd></dl>
-<a name="IDX71"></a>
+<a name="IDX74"></a>
<dl>
<dt><u>Function:</u> int <b>u8_strmbtouc</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint8_t&nbsp;*<var>s</var>)</i>
-<a name="IDX72"></a>
+<a name="IDX75"></a>
</dt>
<dt><u>Function:</u> int <b>u16_strmbtouc</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint16_t&nbsp;*<var>s</var>)</i>
-<a name="IDX73"></a>
+<a name="IDX76"></a>
</dt>
<dt><u>Function:</u> int <b>u32_strmbtouc</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint32_t&nbsp;*<var>s</var>)</i>
-<a name="IDX74"></a>
+<a name="IDX77"></a>
</dt>
<dd><p>Returns the length (number of units) of the first character in <var>s</var>,
putting its <code>ucs4_t</code> representation in <code>*<var>puc</var></code>. Returns 0
@@ -495,13 +512,13 @@ if it is the NUL character. Returns -1 upon failure.
<dl>
<dt><u>Function:</u> const uint8_t * <b>u8_next</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint8_t&nbsp;*<var>s</var>)</i>
-<a name="IDX75"></a>
+<a name="IDX78"></a>
</dt>
<dt><u>Function:</u> const uint16_t * <b>u16_next</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint16_t&nbsp;*<var>s</var>)</i>
-<a name="IDX76"></a>
+<a name="IDX79"></a>
</dt>
<dt><u>Function:</u> const uint32_t * <b>u32_next</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint32_t&nbsp;*<var>s</var>)</i>
-<a name="IDX77"></a>
+<a name="IDX80"></a>
</dt>
<dd><p>Forward iteration step. Advances the pointer past the next character,
or returns NULL if the end of the string has been reached. Puts the
@@ -513,13 +530,13 @@ character in a Unicode string.
</p>
<dl>
<dt><u>Function:</u> const uint8_t * <b>u8_prev</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint8_t&nbsp;*<var>s</var>, const&nbsp;uint8_t&nbsp;*<var>start</var>)</i>
-<a name="IDX78"></a>
+<a name="IDX81"></a>
</dt>
<dt><u>Function:</u> const uint16_t * <b>u16_prev</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint16_t&nbsp;*<var>s</var>, const&nbsp;uint16_t&nbsp;*<var>start</var>)</i>
-<a name="IDX79"></a>
+<a name="IDX82"></a>
</dt>
<dt><u>Function:</u> const uint32_t * <b>u32_prev</b><i> (ucs4_t&nbsp;*<var>puc</var>, const&nbsp;uint32_t&nbsp;*<var>s</var>, const&nbsp;uint32_t&nbsp;*<var>start</var>)</i>
-<a name="IDX80"></a>
+<a name="IDX83"></a>
</dt>
<dd><p>Backward iteration step. Advances the pointer to point to the previous
character (the one that ends at <code><var>s</var></code>), or returns NULL if the
@@ -537,13 +554,13 @@ Note that this function works only on well-formed Unicode strings.
</p>
<dl>
<dt><u>Function:</u> size_t <b>u8_strlen</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>)</i>
-<a name="IDX81"></a>
+<a name="IDX84"></a>
</dt>
<dt><u>Function:</u> size_t <b>u16_strlen</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>)</i>
-<a name="IDX82"></a>
+<a name="IDX85"></a>
</dt>
<dt><u>Function:</u> size_t <b>u32_strlen</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>)</i>
-<a name="IDX83"></a>
+<a name="IDX86"></a>
</dt>
<dd><p>Returns the number of units in <var>s</var>.
</p>
@@ -553,13 +570,13 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> size_t <b>u8_strnlen</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>maxlen</var>)</i>
-<a name="IDX84"></a>
+<a name="IDX87"></a>
</dt>
<dt><u>Function:</u> size_t <b>u16_strnlen</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>maxlen</var>)</i>
-<a name="IDX85"></a>
+<a name="IDX88"></a>
</dt>
<dt><u>Function:</u> size_t <b>u32_strnlen</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>maxlen</var>)</i>
-<a name="IDX86"></a>
+<a name="IDX89"></a>
</dt>
<dd><p>Returns the number of units in <var>s</var>, but at most <var>maxlen</var>.
</p>
@@ -576,13 +593,13 @@ that it operates on Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strcpy</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>)</i>
-<a name="IDX87"></a>
+<a name="IDX90"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strcpy</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>)</i>
-<a name="IDX88"></a>
+<a name="IDX91"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strcpy</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>)</i>
-<a name="IDX89"></a>
+<a name="IDX92"></a>
</dt>
<dd><p>Copies <var>src</var> to <var>dest</var>.
</p>
@@ -592,13 +609,13 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_stpcpy</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>)</i>
-<a name="IDX90"></a>
+<a name="IDX93"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_stpcpy</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>)</i>
-<a name="IDX91"></a>
+<a name="IDX94"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_stpcpy</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>)</i>
-<a name="IDX92"></a>
+<a name="IDX95"></a>
</dt>
<dd><p>Copies <var>src</var> to <var>dest</var>, returning the address of the terminating NUL
in <var>dest</var>.
@@ -609,13 +626,13 @@ Unicode strings.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strncpy</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX93"></a>
+<a name="IDX96"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strncpy</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX94"></a>
+<a name="IDX97"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strncpy</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX95"></a>
+<a name="IDX98"></a>
</dt>
<dd><p>Copies no more than <var>n</var> units of <var>src</var> to <var>dest</var>.
</p>
@@ -625,13 +642,13 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_stpncpy</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX96"></a>
+<a name="IDX99"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_stpncpy</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX97"></a>
+<a name="IDX100"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_stpncpy</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX98"></a>
+<a name="IDX101"></a>
</dt>
<dd><p>Copies no more than <var>n</var> units of <var>src</var> to <var>dest</var>. Returns a
pointer past the last non-NUL unit written into <var>dest</var>. In other words,
@@ -645,13 +662,13 @@ Unicode strings.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strcat</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>)</i>
-<a name="IDX99"></a>
+<a name="IDX102"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strcat</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>)</i>
-<a name="IDX100"></a>
+<a name="IDX103"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strcat</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>)</i>
-<a name="IDX101"></a>
+<a name="IDX104"></a>
</dt>
<dd><p>Appends <var>src</var> onto <var>dest</var>.
</p>
@@ -661,13 +678,13 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strncat</b><i> (uint8_t&nbsp;*<var>dest</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX102"></a>
+<a name="IDX105"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strncat</b><i> (uint16_t&nbsp;*<var>dest</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX103"></a>
+<a name="IDX106"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strncat</b><i> (uint32_t&nbsp;*<var>dest</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX104"></a>
+<a name="IDX107"></a>
</dt>
<dd><p>Appends no more than <var>n</var> units of <var>src</var> onto <var>dest</var>.
</p>
@@ -681,16 +698,17 @@ that it operates on Unicode strings.
<h3 class="subsection"> <a href="libunistring_toc.html#TOC25">4.5.4 Comparing NUL terminated Unicode strings</a> </h3>
<p>The following functions compare two Unicode strings.
+They ignore locale-dependent collation rules.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_strcmp</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>)</i>
-<a name="IDX105"></a>
+<a name="IDX108"></a>
</dt>
<dt><u>Function:</u> int <b>u16_strcmp</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>)</i>
-<a name="IDX106"></a>
+<a name="IDX109"></a>
</dt>
<dt><u>Function:</u> int <b>u32_strcmp</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>)</i>
-<a name="IDX107"></a>
+<a name="IDX110"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var>, lexicographically.
Returns a negative value if <var>s1</var> compares smaller than <var>s2</var>,
@@ -701,16 +719,16 @@ they compare equal.
that it operates on Unicode strings.
</p></dd></dl>
-<a name="IDX108"></a>
+<a name="IDX111"></a>
<dl>
<dt><u>Function:</u> int <b>u8_strcoll</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>)</i>
-<a name="IDX109"></a>
+<a name="IDX112"></a>
</dt>
<dt><u>Function:</u> int <b>u16_strcoll</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>)</i>
-<a name="IDX110"></a>
+<a name="IDX113"></a>
</dt>
<dt><u>Function:</u> int <b>u32_strcoll</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>)</i>
-<a name="IDX111"></a>
+<a name="IDX114"></a>
</dt>
<dd><p>Compares <var>s1</var> and <var>s2</var> using the collation rules of the current
locale.
@@ -722,18 +740,18 @@ that it operates on Unicode strings.
</p>
<p>Note that this function may consider different canonical normalizations
of the same string as having a large distance. It is therefore better to
-use the function <code>u8_normcoll</code> instead of this one; see <a href="libunistring_13.html#SEC61">Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a>.
+use the function <code>u8_normcoll</code> instead of this one; see <a href="libunistring_13.html#SEC63">Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a>.
</p></dd></dl>
<dl>
<dt><u>Function:</u> int <b>u8_strncmp</b><i> (const&nbsp;uint8_t&nbsp;*<var>s1</var>, const&nbsp;uint8_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX112"></a>
+<a name="IDX115"></a>
</dt>
<dt><u>Function:</u> int <b>u16_strncmp</b><i> (const&nbsp;uint16_t&nbsp;*<var>s1</var>, const&nbsp;uint16_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX113"></a>
+<a name="IDX116"></a>
</dt>
<dt><u>Function:</u> int <b>u32_strncmp</b><i> (const&nbsp;uint32_t&nbsp;*<var>s1</var>, const&nbsp;uint32_t&nbsp;*<var>s2</var>, size_t&nbsp;<var>n</var>)</i>
-<a name="IDX114"></a>
+<a name="IDX117"></a>
</dt>
<dd><p>Compares no more than <var>n</var> units of <var>s1</var> and <var>s2</var>.
</p>
@@ -750,13 +768,13 @@ that it operates on Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strdup</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>)</i>
-<a name="IDX115"></a>
+<a name="IDX118"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strdup</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>)</i>
-<a name="IDX116"></a>
+<a name="IDX119"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strdup</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>)</i>
-<a name="IDX117"></a>
+<a name="IDX120"></a>
</dt>
<dd><p>Duplicates <var>s</var>, returning an identical malloc'd string.
</p>
@@ -773,13 +791,13 @@ that it operates on Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strchr</b><i> (const&nbsp;uint8_t&nbsp;*<var>str</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX118"></a>
+<a name="IDX121"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strchr</b><i> (const&nbsp;uint16_t&nbsp;*<var>str</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX119"></a>
+<a name="IDX122"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strchr</b><i> (const&nbsp;uint32_t&nbsp;*<var>str</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX120"></a>
+<a name="IDX123"></a>
</dt>
<dd><p>Finds the first occurrence of <var>uc</var> in <var>str</var>.
</p>
@@ -789,13 +807,13 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strrchr</b><i> (const&nbsp;uint8_t&nbsp;*<var>str</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX121"></a>
+<a name="IDX124"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strrchr</b><i> (const&nbsp;uint16_t&nbsp;*<var>str</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX122"></a>
+<a name="IDX125"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strrchr</b><i> (const&nbsp;uint32_t&nbsp;*<var>str</var>, ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX123"></a>
+<a name="IDX126"></a>
</dt>
<dd><p>Finds the last occurrence of <var>uc</var> in <var>str</var>.
</p>
@@ -808,13 +826,13 @@ character in or outside a given set of Unicode characters.
</p>
<dl>
<dt><u>Function:</u> size_t <b>u8_strcspn</b><i> (const&nbsp;uint8_t&nbsp;*<var>str</var>, const&nbsp;uint8_t&nbsp;*<var>reject</var>)</i>
-<a name="IDX124"></a>
+<a name="IDX127"></a>
</dt>
<dt><u>Function:</u> size_t <b>u16_strcspn</b><i> (const&nbsp;uint16_t&nbsp;*<var>str</var>, const&nbsp;uint16_t&nbsp;*<var>reject</var>)</i>
-<a name="IDX125"></a>
+<a name="IDX128"></a>
</dt>
<dt><u>Function:</u> size_t <b>u32_strcspn</b><i> (const&nbsp;uint32_t&nbsp;*<var>str</var>, const&nbsp;uint32_t&nbsp;*<var>reject</var>)</i>
-<a name="IDX126"></a>
+<a name="IDX129"></a>
</dt>
<dd><p>Returns the length of the initial segment of <var>str</var> which consists entirely
of Unicode characters not in <var>reject</var>.
@@ -825,13 +843,13 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> size_t <b>u8_strspn</b><i> (const&nbsp;uint8_t&nbsp;*<var>str</var>, const&nbsp;uint8_t&nbsp;*<var>accept</var>)</i>
-<a name="IDX127"></a>
+<a name="IDX130"></a>
</dt>
<dt><u>Function:</u> size_t <b>u16_strspn</b><i> (const&nbsp;uint16_t&nbsp;*<var>str</var>, const&nbsp;uint16_t&nbsp;*<var>accept</var>)</i>
-<a name="IDX128"></a>
+<a name="IDX131"></a>
</dt>
<dt><u>Function:</u> size_t <b>u32_strspn</b><i> (const&nbsp;uint32_t&nbsp;*<var>str</var>, const&nbsp;uint32_t&nbsp;*<var>accept</var>)</i>
-<a name="IDX129"></a>
+<a name="IDX132"></a>
</dt>
<dd><p>Returns the length of the initial segment of <var>str</var> which consists entirely
of Unicode characters in <var>accept</var>.
@@ -842,13 +860,13 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strpbrk</b><i> (const&nbsp;uint8_t&nbsp;*<var>str</var>, const&nbsp;uint8_t&nbsp;*<var>accept</var>)</i>
-<a name="IDX130"></a>
+<a name="IDX133"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strpbrk</b><i> (const&nbsp;uint16_t&nbsp;*<var>str</var>, const&nbsp;uint16_t&nbsp;*<var>accept</var>)</i>
-<a name="IDX131"></a>
+<a name="IDX134"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strpbrk</b><i> (const&nbsp;uint32_t&nbsp;*<var>str</var>, const&nbsp;uint32_t&nbsp;*<var>accept</var>)</i>
-<a name="IDX132"></a>
+<a name="IDX135"></a>
</dt>
<dd><p>Finds the first occurrence in <var>str</var> of any character in <var>accept</var>.
</p>
@@ -866,13 +884,13 @@ of another Unicode string.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strstr</b><i> (const&nbsp;uint8_t&nbsp;*<var>haystack</var>, const&nbsp;uint8_t&nbsp;*<var>needle</var>)</i>
-<a name="IDX133"></a>
+<a name="IDX136"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strstr</b><i> (const&nbsp;uint16_t&nbsp;*<var>haystack</var>, const&nbsp;uint16_t&nbsp;*<var>needle</var>)</i>
-<a name="IDX134"></a>
+<a name="IDX137"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strstr</b><i> (const&nbsp;uint32_t&nbsp;*<var>haystack</var>, const&nbsp;uint32_t&nbsp;*<var>needle</var>)</i>
-<a name="IDX135"></a>
+<a name="IDX138"></a>
</dt>
<dd><p>Finds the first occurrence of <var>needle</var> in <var>haystack</var>.
</p>
@@ -882,26 +900,26 @@ that it operates on Unicode strings.
<dl>
<dt><u>Function:</u> bool <b>u8_startswith</b><i> (const&nbsp;uint8_t&nbsp;*<var>str</var>, const&nbsp;uint8_t&nbsp;*<var>prefix</var>)</i>
-<a name="IDX136"></a>
+<a name="IDX139"></a>
</dt>
<dt><u>Function:</u> bool <b>u16_startswith</b><i> (const&nbsp;uint16_t&nbsp;*<var>str</var>, const&nbsp;uint16_t&nbsp;*<var>prefix</var>)</i>
-<a name="IDX137"></a>
+<a name="IDX140"></a>
</dt>
<dt><u>Function:</u> bool <b>u32_startswith</b><i> (const&nbsp;uint32_t&nbsp;*<var>str</var>, const&nbsp;uint32_t&nbsp;*<var>prefix</var>)</i>
-<a name="IDX138"></a>
+<a name="IDX141"></a>
</dt>
<dd><p>Tests whether <var>str</var> starts with <var>prefix</var>.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>u8_endswith</b><i> (const&nbsp;uint8_t&nbsp;*<var>str</var>, const&nbsp;uint8_t&nbsp;*<var>suffix</var>)</i>
-<a name="IDX139"></a>
+<a name="IDX142"></a>
</dt>
<dt><u>Function:</u> bool <b>u16_endswith</b><i> (const&nbsp;uint16_t&nbsp;*<var>str</var>, const&nbsp;uint16_t&nbsp;*<var>suffix</var>)</i>
-<a name="IDX140"></a>
+<a name="IDX143"></a>
</dt>
<dt><u>Function:</u> bool <b>u32_endswith</b><i> (const&nbsp;uint32_t&nbsp;*<var>str</var>, const&nbsp;uint32_t&nbsp;*<var>suffix</var>)</i>
-<a name="IDX141"></a>
+<a name="IDX144"></a>
</dt>
<dd><p>Tests whether <var>str</var> ends with <var>suffix</var>.
</p></dd></dl>
@@ -915,13 +933,13 @@ that it operates on Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strtok</b><i> (uint8_t&nbsp;*<var>str</var>, const&nbsp;uint8_t&nbsp;*<var>delim</var>, uint8_t&nbsp;**<var>ptr</var>)</i>
-<a name="IDX142"></a>
+<a name="IDX145"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strtok</b><i> (uint16_t&nbsp;*<var>str</var>, const&nbsp;uint16_t&nbsp;*<var>delim</var>, uint16_t&nbsp;**<var>ptr</var>)</i>
-<a name="IDX143"></a>
+<a name="IDX146"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strtok</b><i> (uint32_t&nbsp;*<var>str</var>, const&nbsp;uint32_t&nbsp;*<var>delim</var>, uint32_t&nbsp;**<var>ptr</var>)</i>
-<a name="IDX144"></a>
+<a name="IDX147"></a>
</dt>
<dd><p>Divides <var>str</var> into tokens separated by characters in <var>delim</var>.
</p>
@@ -940,12 +958,12 @@ that it operates on Unicode strings. Its interface is actually more similar to
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_5.html b/doc/libunistring_5.html
index 2152ca40..c71878e0 100644
--- a/doc/libunistring_5.html
+++ b/doc/libunistring_5.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -63,12 +63,12 @@ ul.toc {list-style: none}
<p>This include file declares functions for converting between Unicode strings
and <code>char *</code> strings in locale encoding or in other specified encodings.
</p>
-<a name="IDX145"></a>
+<a name="IDX148"></a>
<p>The following function returns the locale encoding.
</p>
<dl>
<dt><u>Function:</u> const char * <b>locale_charset</b><i> ()</i>
-<a name="IDX146"></a>
+<a name="IDX149"></a>
</dt>
<dd><p>Determines the current locale's character encoding, and canonicalizes it
into one of the canonical names listed in &lsquo;<tt>localcharset.h</tt>&rsquo;.
@@ -88,14 +88,14 @@ parametrized through the following enumeration type:
</p>
<dl>
<dt><u>Type:</u> <b>enum iconv_ilseq_handler</b>
-<a name="IDX147"></a>
+<a name="IDX150"></a>
</dt>
<dd><p>This type specifies how unconvertible characters in the input are handled.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> enum iconv_ilseq_handler <b>iconveh_error</b>
-<a name="IDX148"></a>
+<a name="IDX151"></a>
</dt>
<dd><p>This handler causes the function to return with <code>errno</code> set to
<code>EILSEQ</code>.
@@ -103,14 +103,14 @@ parametrized through the following enumeration type:
<dl>
<dt><u>Constant:</u> enum iconv_ilseq_handler <b>iconveh_question_mark</b>
-<a name="IDX149"></a>
+<a name="IDX152"></a>
</dt>
<dd><p>This handler produces one question mark &lsquo;<samp>?</samp>&rsquo; per unconvertible character.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> enum iconv_ilseq_handler <b>iconveh_question_replacement_character</b>
-<a name="IDX150"></a>
+<a name="IDX153"></a>
</dt>
<dd><p>This handler produces one U+FFFD per unconvertible character if that
fits in the target encoding, otherwise one question mark &lsquo;<samp>?</samp>&rsquo; per
@@ -119,25 +119,25 @@ unconvertible character.
<dl>
<dt><u>Constant:</u> enum iconv_ilseq_handler <b>iconveh_escape_sequence</b>
-<a name="IDX151"></a>
+<a name="IDX154"></a>
</dt>
<dd><p>This handler produces an escape sequence <code>\u<var>xxxx</var></code> or
<code>\U<var>xxxxxxxx</var></code> for each unconvertible character.
</p></dd></dl>
-<a name="IDX152"></a>
+<a name="IDX155"></a>
<p>The following functions convert between strings in a specified encoding and
Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_conv_from_encoding</b><i> (const&nbsp;char&nbsp;*<var>fromcode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>, const&nbsp;char&nbsp;*<var>src</var>, size_t&nbsp;<var>srclen</var>, size_t&nbsp;*<var>offsets</var>, uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX153"></a>
+<a name="IDX156"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_conv_from_encoding</b><i> (const&nbsp;char&nbsp;*<var>fromcode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>, const&nbsp;char&nbsp;*<var>src</var>, size_t&nbsp;<var>srclen</var>, size_t&nbsp;*<var>offsets</var>, uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX154"></a>
+<a name="IDX157"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_conv_from_encoding</b><i> (const&nbsp;char&nbsp;*<var>fromcode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>, const&nbsp;char&nbsp;*<var>src</var>, size_t&nbsp;<var>srclen</var>, size_t&nbsp;*<var>offsets</var>, uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX155"></a>
+<a name="IDX158"></a>
</dt>
<dd><p>Converts an entire string, possibly including NUL bytes, from one encoding
to UTF-8 encoding.
@@ -170,13 +170,13 @@ Particular <code>errno</code> values: <code>EINVAL</code>, <code>EILSEQ</code>,
<dl>
<dt><u>Function:</u> char * <b>u8_conv_to_encoding</b><i> (const&nbsp;char&nbsp;*<var>tocode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>, const&nbsp;uint8_t&nbsp;*<var>src</var>, size_t&nbsp;<var>srclen</var>, size_t&nbsp;*<var>offsets</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX156"></a>
+<a name="IDX159"></a>
</dt>
<dt><u>Function:</u> char * <b>u16_conv_to_encoding</b><i> (const&nbsp;char&nbsp;*<var>tocode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>, const&nbsp;uint16_t&nbsp;*<var>src</var>, size_t&nbsp;<var>srclen</var>, size_t&nbsp;*<var>offsets</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX157"></a>
+<a name="IDX160"></a>
</dt>
<dt><u>Function:</u> char * <b>u32_conv_to_encoding</b><i> (const&nbsp;char&nbsp;*<var>tocode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>, const&nbsp;uint32_t&nbsp;*<var>src</var>, size_t&nbsp;<var>srclen</var>, size_t&nbsp;*<var>offsets</var>, char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>)</i>
-<a name="IDX158"></a>
+<a name="IDX161"></a>
</dt>
<dd><p>Converts an entire Unicode string, possibly including NUL units, from UTF-8
encoding to a given encoding.
@@ -212,13 +212,13 @@ encoding and NUL terminated Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strconv_from_encoding</b><i> (const&nbsp;char&nbsp;*<var>string</var>, const&nbsp;char&nbsp;*<var>fromcode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>)</i>
-<a name="IDX159"></a>
+<a name="IDX162"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strconv_from_encoding</b><i> (const&nbsp;char&nbsp;*<var>string</var>, const&nbsp;char&nbsp;*<var>fromcode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>)</i>
-<a name="IDX160"></a>
+<a name="IDX163"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strconv_from_encoding</b><i> (const&nbsp;char&nbsp;*<var>string</var>, const&nbsp;char&nbsp;*<var>fromcode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>)</i>
-<a name="IDX161"></a>
+<a name="IDX164"></a>
</dt>
<dd><p>Converts a NUL terminated string from a given encoding.
</p>
@@ -229,13 +229,13 @@ encoding and NUL terminated Unicode strings.
<dl>
<dt><u>Function:</u> char * <b>u8_strconv_to_encoding</b><i> (const&nbsp;uint8_t&nbsp;*<var>string</var>, const&nbsp;char&nbsp;*<var>tocode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>)</i>
-<a name="IDX162"></a>
+<a name="IDX165"></a>
</dt>
<dt><u>Function:</u> char * <b>u16_strconv_to_encoding</b><i> (const&nbsp;uint16_t&nbsp;*<var>string</var>, const&nbsp;char&nbsp;*<var>tocode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>)</i>
-<a name="IDX163"></a>
+<a name="IDX166"></a>
</dt>
<dt><u>Function:</u> char * <b>u32_strconv_to_encoding</b><i> (const&nbsp;uint32_t&nbsp;*<var>string</var>, const&nbsp;char&nbsp;*<var>tocode</var>, enum&nbsp;iconv_ilseq_handler&nbsp;<var>handler</var>)</i>
-<a name="IDX164"></a>
+<a name="IDX167"></a>
</dt>
<dd><p>Converts a NUL terminated string to a given encoding.
</p>
@@ -249,13 +249,13 @@ strings in locale encoding and NUL terminated Unicode strings.
</p>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_strconv_from_locale</b><i> (const&nbsp;char&nbsp;*<var>string</var>)</i>
-<a name="IDX165"></a>
+<a name="IDX168"></a>
</dt>
<dt><u>Function:</u> uint16_t * <b>u16_strconv_from_locale</b><i> (const&nbsp;char&nbsp;*<var>string</var>)</i>
-<a name="IDX166"></a>
+<a name="IDX169"></a>
</dt>
<dt><u>Function:</u> uint32_t * <b>u32_strconv_from_locale</b><i> (const&nbsp;char&nbsp;*<var>string</var>)</i>
-<a name="IDX167"></a>
+<a name="IDX170"></a>
</dt>
<dd><p>Converts a NUL terminated string from the locale encoding.
</p>
@@ -266,13 +266,13 @@ strings in locale encoding and NUL terminated Unicode strings.
<dl>
<dt><u>Function:</u> char * <b>u8_strconv_to_locale</b><i> (const&nbsp;uint8_t&nbsp;*<var>string</var>)</i>
-<a name="IDX168"></a>
+<a name="IDX171"></a>
</dt>
<dt><u>Function:</u> char * <b>u16_strconv_to_locale</b><i> (const&nbsp;uint16_t&nbsp;*<var>string</var>)</i>
-<a name="IDX169"></a>
+<a name="IDX172"></a>
</dt>
<dt><u>Function:</u> char * <b>u32_strconv_to_locale</b><i> (const&nbsp;uint32_t&nbsp;*<var>string</var>)</i>
-<a name="IDX170"></a>
+<a name="IDX173"></a>
</dt>
<dd><p>Converts a NUL terminated string to the locale encoding.
</p>
@@ -291,12 +291,12 @@ strings in locale encoding and NUL terminated Unicode strings.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_6.html b/doc/libunistring_6.html
index 9bbdf63f..d9941f90 100644
--- a/doc/libunistring_6.html
+++ b/doc/libunistring_6.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -75,6 +75,8 @@ The format directive &lsquo;<samp>lU</samp>&rsquo; takes an UTF-16 string
</li><li>
The format directive &lsquo;<samp>llU</samp>&rsquo; takes an UTF-32 string
(<code>const uint32_t *</code>).
+</li><li>
+The format directive &lsquo;<samp>n</samp>&rsquo; is not supported, for security reasons.
</li></ul>
<p>A function name with an infix &lsquo;<samp>v</samp>&rsquo; indicates that a <code>va_list</code> is
@@ -103,49 +105,49 @@ is a <code>char *</code> string in locale encoding.
</p>
<dl>
<dt><u>Function:</u> int <b>ulc_sprintf</b><i> (char&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX171"></a>
+<a name="IDX174"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>ulc_snprintf</b><i> (char&nbsp;*<var>buf</var>, size_t&nbsp;size, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX172"></a>
+<a name="IDX175"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>ulc_asprintf</b><i> (char&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX173"></a>
+<a name="IDX176"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> char * <b>ulc_asnprintf</b><i> (char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX174"></a>
+<a name="IDX177"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>ulc_vsprintf</b><i> (char&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX175"></a>
+<a name="IDX178"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>ulc_vsnprintf</b><i> (char&nbsp;*<var>buf</var>, size_t&nbsp;size, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX176"></a>
+<a name="IDX179"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>ulc_vasprintf</b><i> (char&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX177"></a>
+<a name="IDX180"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> char * <b>ulc_vasnprintf</b><i> (char&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX178"></a>
+<a name="IDX181"></a>
</dt>
</dl>
@@ -154,42 +156,42 @@ UTF-8 format.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_sprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX179"></a>
+<a name="IDX182"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_snprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX180"></a>
+<a name="IDX183"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_asprintf</b><i> (uint8_t&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX181"></a>
+<a name="IDX184"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_asnprintf</b><i> (uint8_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX182"></a>
+<a name="IDX185"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_vsprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;ap)</i>
-<a name="IDX183"></a>
+<a name="IDX186"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_vsnprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX184"></a>
+<a name="IDX187"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_vasprintf</b><i> (uint8_t&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX185"></a>
+<a name="IDX188"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_vasnprintf</b><i> (uint8_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX186"></a>
+<a name="IDX189"></a>
</dt>
</dl>
@@ -198,42 +200,42 @@ UTF-8 format.
</p>
<dl>
<dt><u>Function:</u> int <b>u8_u8_sprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX187"></a>
+<a name="IDX190"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_u8_snprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX188"></a>
+<a name="IDX191"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_u8_asprintf</b><i> (uint8_t&nbsp;**<var>resultp</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX189"></a>
+<a name="IDX192"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_u8_asnprintf</b><i> (uint8_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX190"></a>
+<a name="IDX193"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_u8_vsprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX191"></a>
+<a name="IDX194"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_u8_vsnprintf</b><i> (uint8_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX192"></a>
+<a name="IDX195"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u8_u8_vasprintf</b><i> (uint8_t&nbsp;**<var>resultp</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX193"></a>
+<a name="IDX196"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint8_t * <b>u8_u8_vasnprintf</b><i> (uint8_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;uint8_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX194"></a>
+<a name="IDX197"></a>
</dt>
</dl>
@@ -242,42 +244,42 @@ UTF-16 format.
</p>
<dl>
<dt><u>Function:</u> int <b>u16_sprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX195"></a>
+<a name="IDX198"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_snprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX196"></a>
+<a name="IDX199"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_asprintf</b><i> (uint16_t&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX197"></a>
+<a name="IDX200"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint16_t * <b>u16_asnprintf</b><i> (uint16_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX198"></a>
+<a name="IDX201"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_vsprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;ap)</i>
-<a name="IDX199"></a>
+<a name="IDX202"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_vsnprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX200"></a>
+<a name="IDX203"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_vasprintf</b><i> (uint16_t&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX201"></a>
+<a name="IDX204"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint16_t * <b>u16_vasnprintf</b><i> (uint16_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX202"></a>
+<a name="IDX205"></a>
</dt>
</dl>
@@ -286,42 +288,42 @@ UTF-16 format.
</p>
<dl>
<dt><u>Function:</u> int <b>u16_u16_sprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX203"></a>
+<a name="IDX206"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_u16_snprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX204"></a>
+<a name="IDX207"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_u16_asprintf</b><i> (uint16_t&nbsp;**<var>resultp</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX205"></a>
+<a name="IDX208"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint16_t * <b>u16_u16_asnprintf</b><i> (uint16_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX206"></a>
+<a name="IDX209"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_u16_vsprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX207"></a>
+<a name="IDX210"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_u16_vsnprintf</b><i> (uint16_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX208"></a>
+<a name="IDX211"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u16_u16_vasprintf</b><i> (uint16_t&nbsp;**<var>resultp</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX209"></a>
+<a name="IDX212"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint16_t * <b>u16_u16_vasnprintf</b><i> (uint16_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;uint16_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX210"></a>
+<a name="IDX213"></a>
</dt>
</dl>
@@ -330,42 +332,42 @@ UTF-32 format.
</p>
<dl>
<dt><u>Function:</u> int <b>u32_sprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX211"></a>
+<a name="IDX214"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_snprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX212"></a>
+<a name="IDX215"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_asprintf</b><i> (uint32_t&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX213"></a>
+<a name="IDX216"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint32_t * <b>u32_asnprintf</b><i> (uint32_t&nbsp;*<var>resultbuf</var>, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX214"></a>
+<a name="IDX217"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_vsprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;ap)</i>
-<a name="IDX215"></a>
+<a name="IDX218"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_vsnprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX216"></a>
+<a name="IDX219"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_vasprintf</b><i> (uint32_t&nbsp;**<var>resultp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX217"></a>
+<a name="IDX220"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint32_t * <b>u32_vasnprintf</b><i> (uint32_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX218"></a>
+<a name="IDX221"></a>
</dt>
</dl>
@@ -374,42 +376,42 @@ UTF-32 format.
</p>
<dl>
<dt><u>Function:</u> int <b>u32_u32_sprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX219"></a>
+<a name="IDX222"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_u32_snprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX220"></a>
+<a name="IDX223"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_u32_asprintf</b><i> (uint32_t&nbsp;**<var>resultp</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX221"></a>
+<a name="IDX224"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint32_t * <b>u32_u32_asnprintf</b><i> (uint32_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX222"></a>
+<a name="IDX225"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_u32_vsprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX223"></a>
+<a name="IDX226"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_u32_vsnprintf</b><i> (uint32_t&nbsp;*<var>buf</var>, size_t&nbsp;<var>size</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX224"></a>
+<a name="IDX227"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>u32_u32_vasprintf</b><i> (uint32_t&nbsp;**<var>resultp</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX225"></a>
+<a name="IDX228"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> uint32_t * <b>u32_u32_vasnprintf</b><i> (uint32_t&nbsp;*resultbuf, size_t&nbsp;*<var>lengthp</var>, const&nbsp;uint32_t&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX226"></a>
+<a name="IDX229"></a>
</dt>
</dl>
@@ -418,12 +420,12 @@ locale encoding to a <code>FILE</code> stream.
</p>
<dl>
<dt><u>Function:</u> int <b>ulc_fprintf</b><i> (FILE&nbsp;*<var>stream</var>, const&nbsp;char&nbsp;*<var>format</var>, ...)</i>
-<a name="IDX227"></a>
+<a name="IDX230"></a>
</dt>
</dl>
<dl>
<dt><u>Function:</u> int <b>ulc_vfprintf</b><i> (FILE&nbsp;*<var>stream</var>, const&nbsp;char&nbsp;*<var>format</var>, va_list&nbsp;<var>ap</var>)</i>
-<a name="IDX228"></a>
+<a name="IDX231"></a>
</dt>
</dl>
<hr size="6">
@@ -437,12 +439,12 @@ locale encoding to a <code>FILE</code> stream.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_7.html b/doc/libunistring_7.html
index e6460789..60a1428f 100644
--- a/doc/libunistring_7.html
+++ b/doc/libunistring_7.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -70,7 +70,7 @@ named <code>&quot;MULTIPLICATION SIGN&quot;</code>.
</p>
<dl>
<dt><u>Macro:</u> unsigned int <b>UNINAME_MAX</b>
-<a name="IDX229"></a>
+<a name="IDX232"></a>
</dt>
<dd><p>This macro expands to a constant that is the required size of buffer for a
Unicode character name.
@@ -78,7 +78,7 @@ Unicode character name.
<dl>
<dt><u>Function:</u> char * <b>unicode_character_name</b><i> (ucs4_t&nbsp;<var>uc</var>, char&nbsp;*<var>buf</var>)</i>
-<a name="IDX230"></a>
+<a name="IDX233"></a>
</dt>
<dd><p>Looks up the name of a Unicode character, in uppercase ASCII.
<var>buf</var> must point to a buffer, at least <code>UNINAME_MAX</code> bytes in size.
@@ -87,7 +87,7 @@ Returns the filled <var>buf</var>, or NULL if the character does not have a name
<dl>
<dt><u>Function:</u> ucs4_t <b>unicode_name_character</b><i> (const&nbsp;char&nbsp;*<var>name</var>)</i>
-<a name="IDX231"></a>
+<a name="IDX234"></a>
</dt>
<dd><p>Looks up the Unicode character with a given name, in upper- or lowercase
ASCII. <var>NAME</var> can also be an alias name of a character.
@@ -96,7 +96,7 @@ Returns the character if found, or <code>UNINAME_INVALID</code> if not found.
<dl>
<dt><u>Macro:</u> ucs4_t <b>UNINAME_INVALID</b>
-<a name="IDX232"></a>
+<a name="IDX235"></a>
</dt>
<dd><p>This macro expands to a constant that is a special return value of the
<code>unicode_name_character</code> function.
@@ -112,12 +112,12 @@ Returns the character if found, or <code>UNINAME_INVALID</code> if not found.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_8.html b/doc/libunistring_8.html
index d07b8204..7dd4c5cc 100644
--- a/doc/libunistring_8.html
+++ b/doc/libunistring_8.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -43,7 +43,7 @@ ul.toc {list-style: none}
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="libunistring_7.html#SEC32" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_9.html#SEC53" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_9.html#SEC55" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,7 +51,7 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
@@ -99,7 +99,7 @@ information for all Unicode characters.
<dl>
<dt><u>Type:</u> <b>uc_general_category_t</b>
-<a name="IDX233"></a>
+<a name="IDX236"></a>
</dt>
<dd><p>This data type denotes a general category value. It is an immediate type that
can be copied by simple assignment, without involving memory allocation. It is
@@ -115,359 +115,359 @@ macros are aliases, for use when readable code is preferred.
</p>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_L</b>
-<a name="IDX234"></a>
+<a name="IDX237"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_LETTER</b>
-<a name="IDX235"></a>
+<a name="IDX238"></a>
</dt>
<dd><p>This represents the general category &ldquo;Letter&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_LC</b>
-<a name="IDX236"></a>
+<a name="IDX239"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_CASED_LETTER</b>
-<a name="IDX237"></a>
+<a name="IDX240"></a>
</dt>
</dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lu</b>
-<a name="IDX238"></a>
+<a name="IDX241"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_UPPERCASE_LETTER</b>
-<a name="IDX239"></a>
+<a name="IDX242"></a>
</dt>
<dd><p>This represents the general category &ldquo;Letter, uppercase&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Ll</b>
-<a name="IDX240"></a>
+<a name="IDX243"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_LOWERCASE_LETTER</b>
-<a name="IDX241"></a>
+<a name="IDX244"></a>
</dt>
<dd><p>This represents the general category &ldquo;Letter, lowercase&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lt</b>
-<a name="IDX242"></a>
+<a name="IDX245"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_TITLECASE_LETTER</b>
-<a name="IDX243"></a>
+<a name="IDX246"></a>
</dt>
<dd><p>This represents the general category &ldquo;Letter, titlecase&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lm</b>
-<a name="IDX244"></a>
+<a name="IDX247"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_MODIFIER_LETTER</b>
-<a name="IDX245"></a>
+<a name="IDX248"></a>
</dt>
<dd><p>This represents the general category &ldquo;Letter, modifier&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lo</b>
-<a name="IDX246"></a>
+<a name="IDX249"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_LETTER</b>
-<a name="IDX247"></a>
+<a name="IDX250"></a>
</dt>
<dd><p>This represents the general category &ldquo;Letter, other&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_M</b>
-<a name="IDX248"></a>
+<a name="IDX251"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_MARK</b>
-<a name="IDX249"></a>
+<a name="IDX252"></a>
</dt>
<dd><p>This represents the general category &ldquo;Marker&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Mn</b>
-<a name="IDX250"></a>
+<a name="IDX253"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_NON_SPACING_MARK</b>
-<a name="IDX251"></a>
+<a name="IDX254"></a>
</dt>
<dd><p>This represents the general category &ldquo;Marker, nonspacing&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Mc</b>
-<a name="IDX252"></a>
+<a name="IDX255"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_COMBINING_SPACING_MARK</b>
-<a name="IDX253"></a>
+<a name="IDX256"></a>
</dt>
<dd><p>This represents the general category &ldquo;Marker, spacing combining&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Me</b>
-<a name="IDX254"></a>
+<a name="IDX257"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_ENCLOSING_MARK</b>
-<a name="IDX255"></a>
+<a name="IDX258"></a>
</dt>
<dd><p>This represents the general category &ldquo;Marker, enclosing&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_N</b>
-<a name="IDX256"></a>
+<a name="IDX259"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_NUMBER</b>
-<a name="IDX257"></a>
+<a name="IDX260"></a>
</dt>
<dd><p>This represents the general category &ldquo;Number&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Nd</b>
-<a name="IDX258"></a>
+<a name="IDX261"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_DECIMAL_DIGIT_NUMBER</b>
-<a name="IDX259"></a>
+<a name="IDX262"></a>
</dt>
<dd><p>This represents the general category &ldquo;Number, decimal digit&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Nl</b>
-<a name="IDX260"></a>
+<a name="IDX263"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_LETTER_NUMBER</b>
-<a name="IDX261"></a>
+<a name="IDX264"></a>
</dt>
<dd><p>This represents the general category &ldquo;Number, letter&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_No</b>
-<a name="IDX262"></a>
+<a name="IDX265"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_NUMBER</b>
-<a name="IDX263"></a>
+<a name="IDX266"></a>
</dt>
<dd><p>This represents the general category &ldquo;Number, other&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_P</b>
-<a name="IDX264"></a>
+<a name="IDX267"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_PUNCTUATION</b>
-<a name="IDX265"></a>
+<a name="IDX268"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pc</b>
-<a name="IDX266"></a>
+<a name="IDX269"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_CONNECTOR_PUNCTUATION</b>
-<a name="IDX267"></a>
+<a name="IDX270"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation, connector&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pd</b>
-<a name="IDX268"></a>
+<a name="IDX271"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_DASH_PUNCTUATION</b>
-<a name="IDX269"></a>
+<a name="IDX272"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation, dash&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Ps</b>
-<a name="IDX270"></a>
+<a name="IDX273"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_OPEN_PUNCTUATION</b>
-<a name="IDX271"></a>
+<a name="IDX274"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation, open&rdquo;, a.k.a. &ldquo;start punctuation&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pe</b>
-<a name="IDX272"></a>
+<a name="IDX275"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_CLOSE_PUNCTUATION</b>
-<a name="IDX273"></a>
+<a name="IDX276"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation, close&rdquo;, a.k.a. &ldquo;end punctuation&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pi</b>
-<a name="IDX274"></a>
+<a name="IDX277"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_INITIAL_QUOTE_PUNCTUATION</b>
-<a name="IDX275"></a>
+<a name="IDX278"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation, initial quote&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pf</b>
-<a name="IDX276"></a>
+<a name="IDX279"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_FINAL_QUOTE_PUNCTUATION</b>
-<a name="IDX277"></a>
+<a name="IDX280"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation, final quote&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Po</b>
-<a name="IDX278"></a>
+<a name="IDX281"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_PUNCTUATION</b>
-<a name="IDX279"></a>
+<a name="IDX282"></a>
</dt>
<dd><p>This represents the general category &ldquo;Punctuation, other&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_S</b>
-<a name="IDX280"></a>
+<a name="IDX283"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_SYMBOL</b>
-<a name="IDX281"></a>
+<a name="IDX284"></a>
</dt>
<dd><p>This represents the general category &ldquo;Symbol&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sm</b>
-<a name="IDX282"></a>
+<a name="IDX285"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_MATH_SYMBOL</b>
-<a name="IDX283"></a>
+<a name="IDX286"></a>
</dt>
<dd><p>This represents the general category &ldquo;Symbol, math&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sc</b>
-<a name="IDX284"></a>
+<a name="IDX287"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_CURRENCY_SYMBOL</b>
-<a name="IDX285"></a>
+<a name="IDX288"></a>
</dt>
<dd><p>This represents the general category &ldquo;Symbol, currency&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sk</b>
-<a name="IDX286"></a>
+<a name="IDX289"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_MODIFIER_SYMBOL</b>
-<a name="IDX287"></a>
+<a name="IDX290"></a>
</dt>
<dd><p>This represents the general category &ldquo;Symbol, modifier&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_So</b>
-<a name="IDX288"></a>
+<a name="IDX291"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_SYMBOL</b>
-<a name="IDX289"></a>
+<a name="IDX292"></a>
</dt>
<dd><p>This represents the general category &ldquo;Symbol, other&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Z</b>
-<a name="IDX290"></a>
+<a name="IDX293"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_SEPARATOR</b>
-<a name="IDX291"></a>
+<a name="IDX294"></a>
</dt>
<dd><p>This represents the general category &ldquo;Separator&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zs</b>
-<a name="IDX292"></a>
+<a name="IDX295"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_SPACE_SEPARATOR</b>
-<a name="IDX293"></a>
+<a name="IDX296"></a>
</dt>
<dd><p>This represents the general category &ldquo;Separator, space&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zl</b>
-<a name="IDX294"></a>
+<a name="IDX297"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_LINE_SEPARATOR</b>
-<a name="IDX295"></a>
+<a name="IDX298"></a>
</dt>
<dd><p>This represents the general category &ldquo;Separator, line&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zp</b>
-<a name="IDX296"></a>
+<a name="IDX299"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_PARAGRAPH_SEPARATOR</b>
-<a name="IDX297"></a>
+<a name="IDX300"></a>
</dt>
<dd><p>This represents the general category &ldquo;Separator, paragraph&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_C</b>
-<a name="IDX298"></a>
+<a name="IDX301"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER</b>
-<a name="IDX299"></a>
+<a name="IDX302"></a>
</dt>
<dd><p>This represents the general category &ldquo;Other&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cc</b>
-<a name="IDX300"></a>
+<a name="IDX303"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_CONTROL</b>
-<a name="IDX301"></a>
+<a name="IDX304"></a>
</dt>
<dd><p>This represents the general category &ldquo;Other, control&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cf</b>
-<a name="IDX302"></a>
+<a name="IDX305"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_FORMAT</b>
-<a name="IDX303"></a>
+<a name="IDX306"></a>
</dt>
<dd><p>This represents the general category &ldquo;Other, format&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cs</b>
-<a name="IDX304"></a>
+<a name="IDX307"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_SURROGATE</b>
-<a name="IDX305"></a>
+<a name="IDX308"></a>
</dt>
<dd><p>This represents the general category &ldquo;Other, surrogate&rdquo;.
All code points in this category are invalid characters.
@@ -475,20 +475,20 @@ All code points in this category are invalid characters.
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Co</b>
-<a name="IDX306"></a>
+<a name="IDX309"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_PRIVATE_USE</b>
-<a name="IDX307"></a>
+<a name="IDX310"></a>
</dt>
<dd><p>This represents the general category &ldquo;Other, private use&rdquo;.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cn</b>
-<a name="IDX308"></a>
+<a name="IDX311"></a>
</dt>
<dt><u>Macro:</u> uc_general_category_t <b>UC_UNASSIGNED</b>
-<a name="IDX309"></a>
+<a name="IDX312"></a>
</dt>
<dd><p>This represents the general category &ldquo;Other, not assigned&rdquo;.
Some code points in this category are invalid characters.
@@ -499,7 +499,7 @@ except that there is no &lsquo;<samp>not</samp>&rsquo; operation.
</p>
<dl>
<dt><u>Function:</u> uc_general_category_t <b>uc_general_category_or</b><i> (uc_general_category_t&nbsp;<var>category1</var>, uc_general_category_t&nbsp;<var>category2</var>)</i>
-<a name="IDX310"></a>
+<a name="IDX313"></a>
</dt>
<dd><p>Returns the union of two general categories.
This corresponds to the unions of the two sets of characters.
@@ -507,7 +507,7 @@ This corresponds to the unions of the two sets of characters.
<dl>
<dt><u>Function:</u> uc_general_category_t <b>uc_general_category_and</b><i> (uc_general_category_t&nbsp;<var>category1</var>, uc_general_category_t&nbsp;<var>category2</var>)</i>
-<a name="IDX311"></a>
+<a name="IDX314"></a>
</dt>
<dd><p>Returns the intersection of two general categories as bit masks.
This <em>does not</em> correspond to the intersection of the two sets of
@@ -516,7 +516,7 @@ characters.
<dl>
<dt><u>Function:</u> uc_general_category_t <b>uc_general_category_and_not</b><i> (uc_general_category_t&nbsp;<var>category1</var>, uc_general_category_t&nbsp;<var>category2</var>)</i>
-<a name="IDX312"></a>
+<a name="IDX315"></a>
</dt>
<dd><p>Returns the intersection of a general category with the complement of a
second general category, as bit masks.
@@ -528,7 +528,7 @@ viewing the categories as sets of characters.
</p>
<dl>
<dt><u>Function:</u> const char * <b>uc_general_category_name</b><i> (uc_general_category_t&nbsp;<var>category</var>)</i>
-<a name="IDX313"></a>
+<a name="IDX316"></a>
</dt>
<dd><p>Returns the name of a general category, more precisely, the abbreviated name.
Returns NULL if the general category corresponds to a bit mask that does not
@@ -537,7 +537,7 @@ have a name.
<dl>
<dt><u>Function:</u> const char * <b>uc_general_category_long_name</b><i> (uc_general_category_t&nbsp;<var>category</var>)</i>
-<a name="IDX314"></a>
+<a name="IDX317"></a>
</dt>
<dd><p>Returns the long name of a general category.
Returns NULL if the general category corresponds to a bit mask that does not
@@ -546,7 +546,7 @@ have a name.
<dl>
<dt><u>Function:</u> uc_general_category_t <b>uc_general_category_byname</b><i> (const&nbsp;char&nbsp;*<var>category_name</var>)</i>
-<a name="IDX315"></a>
+<a name="IDX318"></a>
</dt>
<dd><p>Returns the general category given by name, e.g. <code>&quot;Lu&quot;</code>, or by long
name, e.g. <code>&quot;Uppercase Letter&quot;</code>.
@@ -558,7 +558,7 @@ case-insignificant.
</p>
<dl>
<dt><u>Function:</u> uc_general_category_t <b>uc_general_category</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX316"></a>
+<a name="IDX319"></a>
</dt>
<dd><p>Returns the general category of a Unicode character.
</p>
@@ -567,7 +567,7 @@ case-insignificant.
<dl>
<dt><u>Function:</u> bool <b>uc_is_general_category</b><i> (ucs4_t&nbsp;<var>uc</var>, uc_general_category_t&nbsp;<var>category</var>)</i>
-<a name="IDX317"></a>
+<a name="IDX320"></a>
</dt>
<dd><p>Tests whether a Unicode character belongs to a given category.
The <var>category</var> argument can be a predefined general category or the
@@ -584,118 +584,118 @@ Additional general categories may be added in the future.
</p>
<dl>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_L</b>
-<a name="IDX318"></a>
+<a name="IDX321"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_LC</b>
-<a name="IDX319"></a>
+<a name="IDX322"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lu</b>
-<a name="IDX320"></a>
+<a name="IDX323"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Ll</b>
-<a name="IDX321"></a>
+<a name="IDX324"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lt</b>
-<a name="IDX322"></a>
+<a name="IDX325"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lm</b>
-<a name="IDX323"></a>
+<a name="IDX326"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lo</b>
-<a name="IDX324"></a>
+<a name="IDX327"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_M</b>
-<a name="IDX325"></a>
+<a name="IDX328"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Mn</b>
-<a name="IDX326"></a>
+<a name="IDX329"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Mc</b>
-<a name="IDX327"></a>
+<a name="IDX330"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Me</b>
-<a name="IDX328"></a>
+<a name="IDX331"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_N</b>
-<a name="IDX329"></a>
+<a name="IDX332"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Nd</b>
-<a name="IDX330"></a>
+<a name="IDX333"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Nl</b>
-<a name="IDX331"></a>
+<a name="IDX334"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_No</b>
-<a name="IDX332"></a>
+<a name="IDX335"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_P</b>
-<a name="IDX333"></a>
+<a name="IDX336"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pc</b>
-<a name="IDX334"></a>
+<a name="IDX337"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pd</b>
-<a name="IDX335"></a>
+<a name="IDX338"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Ps</b>
-<a name="IDX336"></a>
+<a name="IDX339"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pe</b>
-<a name="IDX337"></a>
+<a name="IDX340"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pi</b>
-<a name="IDX338"></a>
+<a name="IDX341"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pf</b>
-<a name="IDX339"></a>
+<a name="IDX342"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Po</b>
-<a name="IDX340"></a>
+<a name="IDX343"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_S</b>
-<a name="IDX341"></a>
+<a name="IDX344"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Sm</b>
-<a name="IDX342"></a>
+<a name="IDX345"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Sc</b>
-<a name="IDX343"></a>
+<a name="IDX346"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Sk</b>
-<a name="IDX344"></a>
+<a name="IDX347"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_So</b>
-<a name="IDX345"></a>
+<a name="IDX348"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Z</b>
-<a name="IDX346"></a>
+<a name="IDX349"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Zs</b>
-<a name="IDX347"></a>
+<a name="IDX350"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Zl</b>
-<a name="IDX348"></a>
+<a name="IDX351"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Zp</b>
-<a name="IDX349"></a>
+<a name="IDX352"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_C</b>
-<a name="IDX350"></a>
+<a name="IDX353"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cc</b>
-<a name="IDX351"></a>
+<a name="IDX354"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cf</b>
-<a name="IDX352"></a>
+<a name="IDX355"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cs</b>
-<a name="IDX353"></a>
+<a name="IDX356"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Co</b>
-<a name="IDX354"></a>
+<a name="IDX357"></a>
</dt>
<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cn</b>
-<a name="IDX355"></a>
+<a name="IDX358"></a>
</dt>
</dl>
@@ -703,7 +703,7 @@ Additional general categories may be added in the future.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_general_category_withtable</b><i> (ucs4_t&nbsp;<var>uc</var>, uint32_t&nbsp;<var>bitmask</var>)</i>
-<a name="IDX356"></a>
+<a name="IDX359"></a>
</dt>
<dd><p>Tests whether a Unicode character belongs to a given category.
The <var>bitmask</var> argument can be a predefined general category bitmask or the
@@ -735,7 +735,7 @@ not definitive; more values can be added in future versions.
</p>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_NR</b>
-<a name="IDX357"></a>
+<a name="IDX360"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Not Reordered&rdquo; characters.
The value is 0.
@@ -743,133 +743,133 @@ The value is 0.
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_OV</b>
-<a name="IDX358"></a>
+<a name="IDX361"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Overlay&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_NK</b>
-<a name="IDX359"></a>
+<a name="IDX362"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Nukta&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_KV</b>
-<a name="IDX360"></a>
+<a name="IDX363"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Kana Voicing&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_VR</b>
-<a name="IDX361"></a>
+<a name="IDX364"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Virama&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_ATBL</b>
-<a name="IDX362"></a>
+<a name="IDX365"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Attached Below Left&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_ATB</b>
-<a name="IDX363"></a>
+<a name="IDX366"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Attached Below&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_ATA</b>
-<a name="IDX364"></a>
+<a name="IDX367"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Attached Above&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_ATAR</b>
-<a name="IDX365"></a>
+<a name="IDX368"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Attached Above Right&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_BL</b>
-<a name="IDX366"></a>
+<a name="IDX369"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Below Left&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_B</b>
-<a name="IDX367"></a>
+<a name="IDX370"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Below&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_BR</b>
-<a name="IDX368"></a>
+<a name="IDX371"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Below Right&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_L</b>
-<a name="IDX369"></a>
+<a name="IDX372"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Left&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_R</b>
-<a name="IDX370"></a>
+<a name="IDX373"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Right&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_AL</b>
-<a name="IDX371"></a>
+<a name="IDX374"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Above Left&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_A</b>
-<a name="IDX372"></a>
+<a name="IDX375"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Above&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_AR</b>
-<a name="IDX373"></a>
+<a name="IDX376"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Above Right&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_DB</b>
-<a name="IDX374"></a>
+<a name="IDX377"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Double Below&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_DA</b>
-<a name="IDX375"></a>
+<a name="IDX378"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Double Above&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_CCC_IS</b>
-<a name="IDX376"></a>
+<a name="IDX379"></a>
</dt>
<dd><p>The canonical combining class value for &ldquo;Iota Subscript&rdquo; characters.
</p></dd></dl>
@@ -878,7 +878,7 @@ The value is 0.
</p>
<dl>
<dt><u>Function:</u> const char * <b>uc_combining_class_name</b><i> (int&nbsp;<var>ccc</var>)</i>
-<a name="IDX377"></a>
+<a name="IDX380"></a>
</dt>
<dd><p>Returns the name of a canonical combining class, more precisely, the
abbreviated name.
@@ -888,7 +888,7 @@ name.
<dl>
<dt><u>Function:</u> const char * <b>uc_combining_class_long_name</b><i> (int&nbsp;<var>ccc</var>)</i>
-<a name="IDX378"></a>
+<a name="IDX381"></a>
</dt>
<dd><p>Returns the long name of a canonical combining class.
Returns NULL if the canonical combining class is a numeric value without a
@@ -897,7 +897,7 @@ name.
<dl>
<dt><u>Function:</u> int <b>uc_combining_class_byname</b><i> (const&nbsp;char&nbsp;*<var>ccc_name</var>)</i>
-<a name="IDX379"></a>
+<a name="IDX382"></a>
</dt>
<dd><p>Returns the canonical combining class given by name, e.g. <code>&quot;BL&quot;</code>, or by
long name, e.g. <code>&quot;Below Left&quot;</code>.
@@ -909,7 +909,7 @@ case-insignificant.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_combining_class</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX380"></a>
+<a name="IDX383"></a>
</dt>
<dd><p>Returns the canonical combining class of a Unicode character.
</p></dd></dl>
@@ -928,161 +928,161 @@ the following.
</p>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_L</b>
-<a name="IDX381"></a>
+<a name="IDX384"></a>
</dt>
<dd><p>The bidi class for `Left-to-Right`&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_LRE</b>
-<a name="IDX382"></a>
+<a name="IDX385"></a>
</dt>
<dd><p>The bidi class for &ldquo;Left-to-Right Embedding&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_LRO</b>
-<a name="IDX383"></a>
+<a name="IDX386"></a>
</dt>
<dd><p>The bidi class for &ldquo;Left-to-Right Override&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_R</b>
-<a name="IDX384"></a>
+<a name="IDX387"></a>
</dt>
<dd><p>The bidi class for &ldquo;Right-to-Left&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_AL</b>
-<a name="IDX385"></a>
+<a name="IDX388"></a>
</dt>
<dd><p>The bidi class for &ldquo;Right-to-Left Arabic&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_RLE</b>
-<a name="IDX386"></a>
+<a name="IDX389"></a>
</dt>
<dd><p>The bidi class for &ldquo;Right-to-Left Embedding&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_RLO</b>
-<a name="IDX387"></a>
+<a name="IDX390"></a>
</dt>
<dd><p>The bidi class for &ldquo;Right-to-Left Override&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_PDF</b>
-<a name="IDX388"></a>
+<a name="IDX391"></a>
</dt>
<dd><p>The bidi class for &ldquo;Pop Directional Format&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_EN</b>
-<a name="IDX389"></a>
+<a name="IDX392"></a>
</dt>
<dd><p>The bidi class for &ldquo;European Number&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_ES</b>
-<a name="IDX390"></a>
+<a name="IDX393"></a>
</dt>
<dd><p>The bidi class for &ldquo;European Number Separator&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_ET</b>
-<a name="IDX391"></a>
+<a name="IDX394"></a>
</dt>
<dd><p>The bidi class for &ldquo;European Number Terminator&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_AN</b>
-<a name="IDX392"></a>
+<a name="IDX395"></a>
</dt>
<dd><p>The bidi class for &ldquo;Arabic Number&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_CS</b>
-<a name="IDX393"></a>
+<a name="IDX396"></a>
</dt>
<dd><p>The bidi class for &ldquo;Common Number Separator&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_NSM</b>
-<a name="IDX394"></a>
+<a name="IDX397"></a>
</dt>
<dd><p>The bidi class for &ldquo;Non-Spacing Mark&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_BN</b>
-<a name="IDX395"></a>
+<a name="IDX398"></a>
</dt>
<dd><p>The bidi class for &ldquo;Boundary Neutral&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_B</b>
-<a name="IDX396"></a>
+<a name="IDX399"></a>
</dt>
<dd><p>The bidi class for &ldquo;Paragraph Separator&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_S</b>
-<a name="IDX397"></a>
+<a name="IDX400"></a>
</dt>
<dd><p>The bidi class for &ldquo;Segment Separator&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_WS</b>
-<a name="IDX398"></a>
+<a name="IDX401"></a>
</dt>
<dd><p>The bidi class for &ldquo;Whitespace&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_ON</b>
-<a name="IDX399"></a>
+<a name="IDX402"></a>
</dt>
<dd><p>The bidi class for &ldquo;Other Neutral&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_LRI</b>
-<a name="IDX400"></a>
+<a name="IDX403"></a>
</dt>
<dd><p>The bidi class for &ldquo;Left-to-Right Isolate&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_RLI</b>
-<a name="IDX401"></a>
+<a name="IDX404"></a>
</dt>
<dd><p>The bidi class for &ldquo;Right-to-Left Isolate&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_FSI</b>
-<a name="IDX402"></a>
+<a name="IDX405"></a>
</dt>
<dd><p>The bidi class for &ldquo;First Strong Isolate&rdquo; characters.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_BIDI_PDI</b>
-<a name="IDX403"></a>
+<a name="IDX406"></a>
</dt>
<dd><p>The bidi class for &ldquo;Pop Directional Isolate&rdquo; characters.
</p></dd></dl>
@@ -1092,27 +1092,27 @@ category and its name.
</p>
<dl>
<dt><u>Function:</u> const char * <b>uc_bidi_class_name</b><i> (int&nbsp;<var>bidi_class</var>)</i>
-<a name="IDX404"></a>
+<a name="IDX407"></a>
</dt>
<dt><u>Function:</u> const char * <b>uc_bidi_category_name</b><i> (int&nbsp;<var>category</var>)</i>
-<a name="IDX405"></a>
+<a name="IDX408"></a>
</dt>
<dd><p>Returns the name of a bidi class, more precisely, the abbreviated name.
</p></dd></dl>
<dl>
<dt><u>Function:</u> const char * <b>uc_bidi_class_long_name</b><i> (int&nbsp;<var>bidi_class</var>)</i>
-<a name="IDX406"></a>
+<a name="IDX409"></a>
</dt>
<dd><p>Returns the long name of a bidi class.
</p></dd></dl>
<dl>
<dt><u>Function:</u> int <b>uc_bidi_class_byname</b><i> (const&nbsp;char&nbsp;*<var>bidi_class_name</var>)</i>
-<a name="IDX407"></a>
+<a name="IDX410"></a>
</dt>
<dt><u>Function:</u> int <b>uc_bidi_category_byname</b><i> (const&nbsp;char&nbsp;*<var>category_name</var>)</i>
-<a name="IDX408"></a>
+<a name="IDX411"></a>
</dt>
<dd><p>Returns the bidi class given by name, e.g. <code>&quot;LRE&quot;</code>, or by long name,
e.g. <code>&quot;Left-to-Right Embedding&quot;</code>.
@@ -1125,20 +1125,20 @@ characters.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_bidi_class</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX409"></a>
+<a name="IDX412"></a>
</dt>
<dt><u>Function:</u> int <b>uc_bidi_category</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX410"></a>
+<a name="IDX413"></a>
</dt>
<dd><p>Returns the bidi class of a Unicode character.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>uc_is_bidi_class</b><i> (ucs4_t&nbsp;<var>uc</var>, int&nbsp;<var>bidi_class</var>)</i>
-<a name="IDX411"></a>
+<a name="IDX414"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_bidi_category</b><i> (ucs4_t&nbsp;<var>uc</var>, int&nbsp;<var>category</var>)</i>
-<a name="IDX412"></a>
+<a name="IDX415"></a>
</dt>
<dd><p>Tests whether a Unicode character belongs to a given bidi class.
</p></dd></dl>
@@ -1154,7 +1154,7 @@ numerical value.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_decimal_value</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX413"></a>
+<a name="IDX416"></a>
</dt>
<dd><p>Returns the decimal digit value of a Unicode character.
The return value is an integer in the range 0..9, or -1 for characters that
@@ -1172,7 +1172,7 @@ digit character to its numerical value.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_digit_value</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX414"></a>
+<a name="IDX417"></a>
</dt>
<dd><p>Returns the digit value of a Unicode character.
The return value is an integer in the range 0..9, or -1 for characters that
@@ -1190,7 +1190,7 @@ the Roman numerals, and fractional numbers, like 1/4 or 3/4.
<p>The following type represents the numeric value of a Unicode character.
</p><dl>
<dt><u>Type:</u> <b>uc_fraction_t</b>
-<a name="IDX415"></a>
+<a name="IDX418"></a>
</dt>
<dd><p>This is a structure type with the following fields:
</p><table><tr><td>&nbsp;</td><td><pre class="smallexample">int numerator;
@@ -1204,7 +1204,7 @@ int denominator;
</p>
<dl>
<dt><u>Function:</u> uc_fraction_t <b>uc_numeric_value</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX416"></a>
+<a name="IDX419"></a>
</dt>
<dd><p>Returns the numeric value of a Unicode character.
The return value is a fraction, or the pseudo-fraction <code>{ 0, 0 }</code> for
@@ -1224,11 +1224,20 @@ opening brace character, and so on.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_mirror_char</b><i> (ucs4_t&nbsp;<var>uc</var>, ucs4_t&nbsp;*<var>puc</var>)</i>
-<a name="IDX417"></a>
+<a name="IDX420"></a>
</dt>
<dd><p>Stores the mirrored character of a Unicode character <var>uc</var> in
<code>*<var>puc</var></code> and returns <code>true</code>, if it exists. Otherwise it
stores <var>uc</var> unmodified in <code>*<var>puc</var></code> and returns <code>false</code>.
+</p>
+<p>Note: It is possible for this function to return <code>true</code> and set
+<code>*<var>puc</var></code> to <code>0xFFFD</code>.
+This happens when the character has the bidi mirror property (that is, it
+should be displayed through a mirrored glyph) but this mirrored glyph
+does not exist as a Unicode character; thus a rendering engine needs to
+synthesize it artificially or pick it from an appropriate font.
+This affects mostly mathematical operators.
+See section &ldquo;Bidi Mirrored&rdquo; of the Unicode standard.
</p></dd></dl>
<hr size="6">
@@ -1255,14 +1264,14 @@ neighbour characters are rendered depending on this character.
</p>
<dl>
<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_U</b>
-<a name="IDX418"></a>
+<a name="IDX421"></a>
</dt>
<dd><p>&ldquo;Non joining&rdquo;: Characters of this joining type prohibit joining.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_T</b>
-<a name="IDX419"></a>
+<a name="IDX422"></a>
</dt>
<dd><p>&ldquo;Transparent&rdquo;: Characters of this joining type are skipped when
considering joining.
@@ -1270,7 +1279,7 @@ considering joining.
<dl>
<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_C</b>
-<a name="IDX420"></a>
+<a name="IDX423"></a>
</dt>
<dd><p>&ldquo;Join causing&rdquo;: Characters of this joining type cause their neighbour
characters to change their shapes but don't change their own shape.
@@ -1278,7 +1287,7 @@ characters to change their shapes but don't change their own shape.
<dl>
<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_L</b>
-<a name="IDX421"></a>
+<a name="IDX424"></a>
</dt>
<dd><p>&ldquo;Left joining&rdquo;: Characters of this joining type have two shapes,
isolated and initial. Such characters currently don't exist.
@@ -1286,7 +1295,7 @@ isolated and initial. Such characters currently don't exist.
<dl>
<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_R</b>
-<a name="IDX422"></a>
+<a name="IDX425"></a>
</dt>
<dd><p>&ldquo;Right joining&rdquo;: Characters of this joining type have two shapes,
isolated and final.
@@ -1294,7 +1303,7 @@ isolated and final.
<dl>
<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_D</b>
-<a name="IDX423"></a>
+<a name="IDX426"></a>
</dt>
<dd><p>&ldquo;Dual joining&rdquo;: Characters of this joining type have four shapes,
initial, medial, final, and isolated.
@@ -1305,21 +1314,21 @@ and its name.
</p>
<dl>
<dt><u>Function:</u> const char * <b>uc_joining_type_name</b><i> (int&nbsp;<var>joining_type</var>)</i>
-<a name="IDX424"></a>
+<a name="IDX427"></a>
</dt>
<dd><p>Returns the name of a joining type.
</p></dd></dl>
<dl>
<dt><u>Function:</u> const char * <b>uc_joining_type_long_name</b><i> (int&nbsp;<var>joining_type</var>)</i>
-<a name="IDX425"></a>
+<a name="IDX428"></a>
</dt>
<dd><p>Returns the long name of a joining type.
</p></dd></dl>
<dl>
<dt><u>Function:</u> int <b>uc_joining_type_byname</b><i> (const&nbsp;char&nbsp;*<var>joining_type_name</var>)</i>
-<a name="IDX426"></a>
+<a name="IDX429"></a>
</dt>
<dd><p>Returns the joining type given by name, e.g. <code>&quot;D&quot;</code>, or by long name,
e.g. <code>&quot;Dual Joining</code>.
@@ -1331,7 +1340,7 @@ case-insignificant.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_joining_type</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX427"></a>
+<a name="IDX430"></a>
</dt>
<dd><p>Returns the joining type of a Unicode character.
</p></dd></dl>
@@ -1349,316 +1358,316 @@ two contexts of right-joining characters.
</p>
<dl>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NONE</b>
-<a name="IDX428"></a>
+<a name="IDX431"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_AIN</b>
-<a name="IDX429"></a>
+<a name="IDX432"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ALAPH</b>
-<a name="IDX430"></a>
+<a name="IDX433"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ALEF</b>
-<a name="IDX431"></a>
+<a name="IDX434"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_BEH</b>
-<a name="IDX432"></a>
+<a name="IDX435"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_BETH</b>
-<a name="IDX433"></a>
+<a name="IDX436"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE</b>
-<a name="IDX434"></a>
+<a name="IDX437"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_DAL</b>
-<a name="IDX435"></a>
+<a name="IDX438"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_DALATH_RISH</b>
-<a name="IDX436"></a>
+<a name="IDX439"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_E</b>
-<a name="IDX437"></a>
+<a name="IDX440"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FARSI_YEH</b>
-<a name="IDX438"></a>
+<a name="IDX441"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FE</b>
-<a name="IDX439"></a>
+<a name="IDX442"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FEH</b>
-<a name="IDX440"></a>
+<a name="IDX443"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FINAL_SEMKATH</b>
-<a name="IDX441"></a>
+<a name="IDX444"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_GAF</b>
-<a name="IDX442"></a>
+<a name="IDX445"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_GAMAL</b>
-<a name="IDX443"></a>
+<a name="IDX446"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HAH</b>
-<a name="IDX444"></a>
+<a name="IDX447"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HE</b>
-<a name="IDX445"></a>
+<a name="IDX448"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HEH</b>
-<a name="IDX446"></a>
+<a name="IDX449"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HEH_GOAL</b>
-<a name="IDX447"></a>
+<a name="IDX450"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HETH</b>
-<a name="IDX448"></a>
+<a name="IDX451"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KAF</b>
-<a name="IDX449"></a>
+<a name="IDX452"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KAPH</b>
-<a name="IDX450"></a>
+<a name="IDX453"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KHAPH</b>
-<a name="IDX451"></a>
+<a name="IDX454"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KNOTTED_HEH</b>
-<a name="IDX452"></a>
+<a name="IDX455"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_LAM</b>
-<a name="IDX453"></a>
+<a name="IDX456"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_LAMADH</b>
-<a name="IDX454"></a>
+<a name="IDX457"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MEEM</b>
-<a name="IDX455"></a>
+<a name="IDX458"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MIM</b>
-<a name="IDX456"></a>
+<a name="IDX459"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NOON</b>
-<a name="IDX457"></a>
+<a name="IDX460"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NUN</b>
-<a name="IDX458"></a>
+<a name="IDX461"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NYA</b>
-<a name="IDX459"></a>
+<a name="IDX462"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_PE</b>
-<a name="IDX460"></a>
+<a name="IDX463"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_QAF</b>
-<a name="IDX461"></a>
+<a name="IDX464"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_QAPH</b>
-<a name="IDX462"></a>
+<a name="IDX465"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_REH</b>
-<a name="IDX463"></a>
+<a name="IDX466"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_REVERSED_PE</b>
-<a name="IDX464"></a>
+<a name="IDX467"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SAD</b>
-<a name="IDX465"></a>
+<a name="IDX468"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SADHE</b>
-<a name="IDX466"></a>
+<a name="IDX469"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SEEN</b>
-<a name="IDX467"></a>
+<a name="IDX470"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SEMKATH</b>
-<a name="IDX468"></a>
+<a name="IDX471"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SHIN</b>
-<a name="IDX469"></a>
+<a name="IDX472"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SWASH_KAF</b>
-<a name="IDX470"></a>
+<a name="IDX473"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SYRIAC_WAW</b>
-<a name="IDX471"></a>
+<a name="IDX474"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TAH</b>
-<a name="IDX472"></a>
+<a name="IDX475"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TAW</b>
-<a name="IDX473"></a>
+<a name="IDX476"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TEH_MARBUTA</b>
-<a name="IDX474"></a>
+<a name="IDX477"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TEH_MARBUTA_GOAL</b>
-<a name="IDX475"></a>
+<a name="IDX478"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TETH</b>
-<a name="IDX476"></a>
+<a name="IDX479"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_WAW</b>
-<a name="IDX477"></a>
+<a name="IDX480"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YEH</b>
-<a name="IDX478"></a>
+<a name="IDX481"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YEH_BARREE</b>
-<a name="IDX479"></a>
+<a name="IDX482"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YEH_WITH_TAIL</b>
-<a name="IDX480"></a>
+<a name="IDX483"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YUDH</b>
-<a name="IDX481"></a>
+<a name="IDX484"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YUDH_HE</b>
-<a name="IDX482"></a>
+<a name="IDX485"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ZAIN</b>
-<a name="IDX483"></a>
+<a name="IDX486"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ZHAIN</b>
-<a name="IDX484"></a>
+<a name="IDX487"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ROHINGYA_YEH</b>
-<a name="IDX485"></a>
+<a name="IDX488"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_STRAIGHT_WAW</b>
-<a name="IDX486"></a>
+<a name="IDX489"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_ALEPH</b>
-<a name="IDX487"></a>
+<a name="IDX490"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_BETH</b>
-<a name="IDX488"></a>
+<a name="IDX491"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_GIMEL</b>
-<a name="IDX489"></a>
+<a name="IDX492"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_DALETH</b>
-<a name="IDX490"></a>
+<a name="IDX493"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_WAW</b>
-<a name="IDX491"></a>
+<a name="IDX494"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_ZAYIN</b>
-<a name="IDX492"></a>
+<a name="IDX495"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_HETH</b>
-<a name="IDX493"></a>
+<a name="IDX496"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_TETH</b>
-<a name="IDX494"></a>
+<a name="IDX497"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_YODH</b>
-<a name="IDX495"></a>
+<a name="IDX498"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_KAPH</b>
-<a name="IDX496"></a>
+<a name="IDX499"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_LAMEDH</b>
-<a name="IDX497"></a>
+<a name="IDX500"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_DHAMEDH</b>
-<a name="IDX498"></a>
+<a name="IDX501"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_THAMEDH</b>
-<a name="IDX499"></a>
+<a name="IDX502"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_MEM</b>
-<a name="IDX500"></a>
+<a name="IDX503"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_NUN</b>
-<a name="IDX501"></a>
+<a name="IDX504"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_SAMEKH</b>
-<a name="IDX502"></a>
+<a name="IDX505"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_AYIN</b>
-<a name="IDX503"></a>
+<a name="IDX506"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_PE</b>
-<a name="IDX504"></a>
+<a name="IDX507"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_SADHE</b>
-<a name="IDX505"></a>
+<a name="IDX508"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_QOPH</b>
-<a name="IDX506"></a>
+<a name="IDX509"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_RESH</b>
-<a name="IDX507"></a>
+<a name="IDX510"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_TAW</b>
-<a name="IDX508"></a>
+<a name="IDX511"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_ONE</b>
-<a name="IDX509"></a>
+<a name="IDX512"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_FIVE</b>
-<a name="IDX510"></a>
+<a name="IDX513"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_TEN</b>
-<a name="IDX511"></a>
+<a name="IDX514"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_TWENTY</b>
-<a name="IDX512"></a>
+<a name="IDX515"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MANICHAEAN_HUNDRED</b>
-<a name="IDX513"></a>
+<a name="IDX516"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_AFRICAN_FEH</b>
-<a name="IDX514"></a>
+<a name="IDX517"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_AFRICAN_QAF</b>
-<a name="IDX515"></a>
+<a name="IDX518"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_AFRICAN_NOON</b>
-<a name="IDX516"></a>
+<a name="IDX519"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_NGA</b>
-<a name="IDX517"></a>
+<a name="IDX520"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_JA</b>
-<a name="IDX518"></a>
+<a name="IDX521"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_NYA</b>
-<a name="IDX519"></a>
+<a name="IDX522"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_TTA</b>
-<a name="IDX520"></a>
+<a name="IDX523"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_NNA</b>
-<a name="IDX521"></a>
+<a name="IDX524"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_NNNA</b>
-<a name="IDX522"></a>
+<a name="IDX525"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_BHA</b>
-<a name="IDX523"></a>
+<a name="IDX526"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_RA</b>
-<a name="IDX524"></a>
+<a name="IDX527"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_LLA</b>
-<a name="IDX525"></a>
+<a name="IDX528"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_LLLA</b>
-<a name="IDX526"></a>
+<a name="IDX529"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MALAYALAM_SSA</b>
-<a name="IDX527"></a>
+<a name="IDX530"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HANIFI_ROHINGYA_PA</b>
-<a name="IDX528"></a>
+<a name="IDX531"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HANIFI_ROHINGYA_KINNA_YA</b>
-<a name="IDX529"></a>
+<a name="IDX532"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_THIN_YEH</b>
-<a name="IDX530"></a>
+<a name="IDX533"></a>
</dt>
<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_VERTICAL_TAIL</b>
-<a name="IDX531"></a>
+<a name="IDX534"></a>
</dt>
</dl>
@@ -1667,14 +1676,14 @@ and its name.
</p>
<dl>
<dt><u>Function:</u> const char * <b>uc_joining_group_name</b><i> (int&nbsp;<var>joining_group</var>)</i>
-<a name="IDX532"></a>
+<a name="IDX535"></a>
</dt>
<dd><p>Returns the name of a joining group.
</p></dd></dl>
<dl>
<dt><u>Function:</u> int <b>uc_joining_group_byname</b><i> (const&nbsp;char&nbsp;*<var>joining_group_name</var>)</i>
-<a name="IDX533"></a>
+<a name="IDX536"></a>
</dt>
<dd><p>Returns the joining group given by name, e.g. <code>&quot;Teh_Marbuta&quot;</code>.
This lookup ignores spaces, underscores, or hyphens as word separators and is
@@ -1685,7 +1694,7 @@ case-insignificant.
</p>
<dl>
<dt><u>Function:</u> int <b>uc_joining_group</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX534"></a>
+<a name="IDX537"></a>
</dt>
<dd><p>Returns the joining group of a Unicode character.
</p></dd></dl>
@@ -1715,7 +1724,7 @@ low level, a property is merely a function.
</p>
<dl>
<dt><u>Type:</u> <b>uc_property_t</b>
-<a name="IDX535"></a>
+<a name="IDX538"></a>
</dt>
<dd><p>This data type denotes a boolean property on Unicode characters. It is an
immediate type that can be copied by simple assignment, without involving
@@ -1728,37 +1737,37 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_WHITE_SPACE</b>
-<a name="IDX536"></a>
+<a name="IDX539"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ALPHABETIC</b>
-<a name="IDX537"></a>
+<a name="IDX540"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_ALPHABETIC</b>
-<a name="IDX538"></a>
+<a name="IDX541"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_NOT_A_CHARACTER</b>
-<a name="IDX539"></a>
+<a name="IDX542"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT</b>
-<a name="IDX540"></a>
+<a name="IDX543"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT</b>
-<a name="IDX541"></a>
+<a name="IDX544"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DEPRECATED</b>
-<a name="IDX542"></a>
+<a name="IDX545"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LOGICAL_ORDER_EXCEPTION</b>
-<a name="IDX543"></a>
+<a name="IDX546"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_VARIATION_SELECTOR</b>
-<a name="IDX544"></a>
+<a name="IDX547"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PRIVATE_USE</b>
-<a name="IDX545"></a>
+<a name="IDX548"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_UNASSIGNED_CODE_VALUE</b>
-<a name="IDX546"></a>
+<a name="IDX549"></a>
</dt>
</dl>
@@ -1766,43 +1775,43 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_UPPERCASE</b>
-<a name="IDX547"></a>
+<a name="IDX550"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_UPPERCASE</b>
-<a name="IDX548"></a>
+<a name="IDX551"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LOWERCASE</b>
-<a name="IDX549"></a>
+<a name="IDX552"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_LOWERCASE</b>
-<a name="IDX550"></a>
+<a name="IDX553"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_TITLECASE</b>
-<a name="IDX551"></a>
+<a name="IDX554"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CASED</b>
-<a name="IDX552"></a>
+<a name="IDX555"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CASE_IGNORABLE</b>
-<a name="IDX553"></a>
+<a name="IDX556"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_LOWERCASED</b>
-<a name="IDX554"></a>
+<a name="IDX557"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_UPPERCASED</b>
-<a name="IDX555"></a>
+<a name="IDX558"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_TITLECASED</b>
-<a name="IDX556"></a>
+<a name="IDX559"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_CASEFOLDED</b>
-<a name="IDX557"></a>
+<a name="IDX560"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_CASEMAPPED</b>
-<a name="IDX558"></a>
+<a name="IDX561"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_SOFT_DOTTED</b>
-<a name="IDX559"></a>
+<a name="IDX562"></a>
</dt>
</dl>
@@ -1810,28 +1819,34 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ID_START</b>
-<a name="IDX560"></a>
+<a name="IDX563"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_ID_START</b>
-<a name="IDX561"></a>
+<a name="IDX564"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ID_CONTINUE</b>
-<a name="IDX562"></a>
+<a name="IDX565"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_ID_CONTINUE</b>
-<a name="IDX563"></a>
+<a name="IDX566"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_XID_START</b>
-<a name="IDX564"></a>
+<a name="IDX567"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_XID_CONTINUE</b>
-<a name="IDX565"></a>
+<a name="IDX568"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ID_COMPAT_MATH_START</b>
+<a name="IDX569"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ID_COMPAT_MATH_CONTINUE</b>
+<a name="IDX570"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PATTERN_WHITE_SPACE</b>
-<a name="IDX566"></a>
+<a name="IDX571"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PATTERN_SYNTAX</b>
-<a name="IDX567"></a>
+<a name="IDX572"></a>
</dt>
</dl>
@@ -1839,19 +1854,19 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_JOIN_CONTROL</b>
-<a name="IDX568"></a>
+<a name="IDX573"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_GRAPHEME_BASE</b>
-<a name="IDX569"></a>
+<a name="IDX574"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_GRAPHEME_EXTEND</b>
-<a name="IDX570"></a>
+<a name="IDX575"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_GRAPHEME_EXTEND</b>
-<a name="IDX571"></a>
+<a name="IDX576"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_GRAPHEME_LINK</b>
-<a name="IDX572"></a>
+<a name="IDX577"></a>
</dt>
</dl>
@@ -1859,55 +1874,55 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_CONTROL</b>
-<a name="IDX573"></a>
+<a name="IDX578"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_LEFT_TO_RIGHT</b>
-<a name="IDX574"></a>
+<a name="IDX579"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT</b>
-<a name="IDX575"></a>
+<a name="IDX580"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT</b>
-<a name="IDX576"></a>
+<a name="IDX581"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EUROPEAN_DIGIT</b>
-<a name="IDX577"></a>
+<a name="IDX582"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR</b>
-<a name="IDX578"></a>
+<a name="IDX583"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR</b>
-<a name="IDX579"></a>
+<a name="IDX584"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_ARABIC_DIGIT</b>
-<a name="IDX580"></a>
+<a name="IDX585"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_COMMON_SEPARATOR</b>
-<a name="IDX581"></a>
+<a name="IDX586"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_BLOCK_SEPARATOR</b>
-<a name="IDX582"></a>
+<a name="IDX587"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_SEGMENT_SEPARATOR</b>
-<a name="IDX583"></a>
+<a name="IDX588"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_WHITESPACE</b>
-<a name="IDX584"></a>
+<a name="IDX589"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_NON_SPACING_MARK</b>
-<a name="IDX585"></a>
+<a name="IDX590"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL</b>
-<a name="IDX586"></a>
+<a name="IDX591"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_PDF</b>
-<a name="IDX587"></a>
+<a name="IDX592"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE</b>
-<a name="IDX588"></a>
+<a name="IDX593"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_OTHER_NEUTRAL</b>
-<a name="IDX589"></a>
+<a name="IDX594"></a>
</dt>
</dl>
@@ -1915,10 +1930,10 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_HEX_DIGIT</b>
-<a name="IDX590"></a>
+<a name="IDX595"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ASCII_HEX_DIGIT</b>
-<a name="IDX591"></a>
+<a name="IDX596"></a>
</dt>
</dl>
@@ -1926,19 +1941,22 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IDEOGRAPHIC</b>
-<a name="IDX592"></a>
+<a name="IDX597"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_UNIFIED_IDEOGRAPH</b>
-<a name="IDX593"></a>
+<a name="IDX598"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_RADICAL</b>
-<a name="IDX594"></a>
+<a name="IDX599"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IDS_UNARY_OPERATOR</b>
+<a name="IDX600"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IDS_BINARY_OPERATOR</b>
-<a name="IDX595"></a>
+<a name="IDX601"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IDS_TRINARY_OPERATOR</b>
-<a name="IDX596"></a>
+<a name="IDX602"></a>
</dt>
</dl>
@@ -1946,22 +1964,22 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EMOJI</b>
-<a name="IDX597"></a>
+<a name="IDX603"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EMOJI_PRESENTATION</b>
-<a name="IDX598"></a>
+<a name="IDX604"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EMOJI_MODIFIER</b>
-<a name="IDX599"></a>
+<a name="IDX605"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EMOJI_MODIFIER_BASE</b>
-<a name="IDX600"></a>
+<a name="IDX606"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EMOJI_COMPONENT</b>
-<a name="IDX601"></a>
+<a name="IDX607"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EXTENDED_PICTOGRAPHIC</b>
-<a name="IDX602"></a>
+<a name="IDX608"></a>
</dt>
</dl>
@@ -1969,82 +1987,85 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ZERO_WIDTH</b>
-<a name="IDX603"></a>
+<a name="IDX609"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_SPACE</b>
-<a name="IDX604"></a>
+<a name="IDX610"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_NON_BREAK</b>
-<a name="IDX605"></a>
+<a name="IDX611"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ISO_CONTROL</b>
-<a name="IDX606"></a>
+<a name="IDX612"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_FORMAT_CONTROL</b>
-<a name="IDX607"></a>
+<a name="IDX613"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PREPENDED_CONCATENATION_MARK</b>
+<a name="IDX614"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DASH</b>
-<a name="IDX608"></a>
+<a name="IDX615"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_HYPHEN</b>
-<a name="IDX609"></a>
+<a name="IDX616"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PUNCTUATION</b>
-<a name="IDX610"></a>
+<a name="IDX617"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LINE_SEPARATOR</b>
-<a name="IDX611"></a>
+<a name="IDX618"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PARAGRAPH_SEPARATOR</b>
-<a name="IDX612"></a>
+<a name="IDX619"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_QUOTATION_MARK</b>
-<a name="IDX613"></a>
+<a name="IDX620"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_SENTENCE_TERMINAL</b>
-<a name="IDX614"></a>
+<a name="IDX621"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_TERMINAL_PUNCTUATION</b>
-<a name="IDX615"></a>
+<a name="IDX622"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CURRENCY_SYMBOL</b>
-<a name="IDX616"></a>
+<a name="IDX623"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_MATH</b>
-<a name="IDX617"></a>
+<a name="IDX624"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_MATH</b>
-<a name="IDX618"></a>
+<a name="IDX625"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PAIRED_PUNCTUATION</b>
-<a name="IDX619"></a>
+<a name="IDX626"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LEFT_OF_PAIR</b>
-<a name="IDX620"></a>
+<a name="IDX627"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_COMBINING</b>
-<a name="IDX621"></a>
+<a name="IDX628"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_COMPOSITE</b>
-<a name="IDX622"></a>
+<a name="IDX629"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DECIMAL_DIGIT</b>
-<a name="IDX623"></a>
+<a name="IDX630"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_NUMERIC</b>
-<a name="IDX624"></a>
+<a name="IDX631"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DIACRITIC</b>
-<a name="IDX625"></a>
+<a name="IDX632"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EXTENDER</b>
-<a name="IDX626"></a>
+<a name="IDX633"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IGNORABLE_CONTROL</b>
-<a name="IDX627"></a>
+<a name="IDX634"></a>
</dt>
<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_REGIONAL_INDICATOR</b>
-<a name="IDX628"></a>
+<a name="IDX635"></a>
</dt>
</dl>
@@ -2052,7 +2073,7 @@ memory allocation. It is not an array type.
</p>
<dl>
<dt><u>Function:</u> uc_property_t <b>uc_property_byname</b><i> (const&nbsp;char&nbsp;*<var>property_name</var>)</i>
-<a name="IDX629"></a>
+<a name="IDX636"></a>
</dt>
<dd><p>Returns the property given by name, e.g. <code>&quot;White space&quot;</code>. If a property
with the given name exists, the result will satisfy the
@@ -2070,7 +2091,7 @@ can significantly increase the size of your application.
<dl>
<dt><u>Function:</u> bool <b>uc_property_is_valid</b><i> (uc_property_t&nbsp;property)</i>
-<a name="IDX630"></a>
+<a name="IDX637"></a>
</dt>
<dd><p>Returns <code>true</code> when the given property is valid, or <code>false</code>
otherwise.
@@ -2080,7 +2101,7 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property</b><i> (ucs4_t&nbsp;<var>uc</var>, uc_property_t&nbsp;<var>property</var>)</i>
-<a name="IDX631"></a>
+<a name="IDX638"></a>
</dt>
<dd><p>Tests whether the Unicode character <var>uc</var> has the given property.
</p></dd></dl>
@@ -2094,37 +2115,37 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_white_space</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX632"></a>
+<a name="IDX639"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_alphabetic</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX633"></a>
+<a name="IDX640"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_alphabetic</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX634"></a>
+<a name="IDX641"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_not_a_character</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX635"></a>
+<a name="IDX642"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_default_ignorable_code_point</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX636"></a>
+<a name="IDX643"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_default_ignorable_code_point</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX637"></a>
+<a name="IDX644"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_deprecated</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX638"></a>
+<a name="IDX645"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_logical_order_exception</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX639"></a>
+<a name="IDX646"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_variation_selector</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX640"></a>
+<a name="IDX647"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_private_use</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX641"></a>
+<a name="IDX648"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_unassigned_code_value</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX642"></a>
+<a name="IDX649"></a>
</dt>
</dl>
@@ -2132,43 +2153,43 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_uppercase</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX643"></a>
+<a name="IDX650"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_uppercase</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX644"></a>
+<a name="IDX651"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_lowercase</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX645"></a>
+<a name="IDX652"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_lowercase</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX646"></a>
+<a name="IDX653"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_titlecase</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX647"></a>
+<a name="IDX654"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_cased</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX648"></a>
+<a name="IDX655"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_case_ignorable</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX649"></a>
+<a name="IDX656"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_changes_when_lowercased</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX650"></a>
+<a name="IDX657"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_changes_when_uppercased</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX651"></a>
+<a name="IDX658"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_changes_when_titlecased</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX652"></a>
+<a name="IDX659"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_changes_when_casefolded</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX653"></a>
+<a name="IDX660"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_changes_when_casemapped</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX654"></a>
+<a name="IDX661"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_soft_dotted</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX655"></a>
+<a name="IDX662"></a>
</dt>
</dl>
@@ -2176,28 +2197,34 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_id_start</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX656"></a>
+<a name="IDX663"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_id_start</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX657"></a>
+<a name="IDX664"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_id_continue</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX658"></a>
+<a name="IDX665"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_id_continue</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX659"></a>
+<a name="IDX666"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_xid_start</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX660"></a>
+<a name="IDX667"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_xid_continue</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX661"></a>
+<a name="IDX668"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_id_compat_math_start</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
+<a name="IDX669"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_id_compat_math_continue</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
+<a name="IDX670"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_pattern_white_space</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX662"></a>
+<a name="IDX671"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_pattern_syntax</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX663"></a>
+<a name="IDX672"></a>
</dt>
</dl>
@@ -2205,19 +2232,19 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_join_control</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX664"></a>
+<a name="IDX673"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_grapheme_base</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX665"></a>
+<a name="IDX674"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_grapheme_extend</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX666"></a>
+<a name="IDX675"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_grapheme_extend</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX667"></a>
+<a name="IDX676"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_grapheme_link</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX668"></a>
+<a name="IDX677"></a>
</dt>
</dl>
@@ -2225,55 +2252,55 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_control</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX669"></a>
+<a name="IDX678"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_left_to_right</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX670"></a>
+<a name="IDX679"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_hebrew_right_to_left</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX671"></a>
+<a name="IDX680"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_arabic_right_to_left</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX672"></a>
+<a name="IDX681"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_european_digit</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX673"></a>
+<a name="IDX682"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_eur_num_separator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX674"></a>
+<a name="IDX683"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_eur_num_terminator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX675"></a>
+<a name="IDX684"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_arabic_digit</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX676"></a>
+<a name="IDX685"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_common_separator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX677"></a>
+<a name="IDX686"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_block_separator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX678"></a>
+<a name="IDX687"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_segment_separator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX679"></a>
+<a name="IDX688"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_whitespace</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX680"></a>
+<a name="IDX689"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_non_spacing_mark</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX681"></a>
+<a name="IDX690"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_boundary_neutral</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX682"></a>
+<a name="IDX691"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_pdf</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX683"></a>
+<a name="IDX692"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_embedding_or_override</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX684"></a>
+<a name="IDX693"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_bidi_other_neutral</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX685"></a>
+<a name="IDX694"></a>
</dt>
</dl>
@@ -2281,10 +2308,10 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_hex_digit</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX686"></a>
+<a name="IDX695"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_ascii_hex_digit</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX687"></a>
+<a name="IDX696"></a>
</dt>
</dl>
@@ -2292,19 +2319,22 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_ideographic</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX688"></a>
+<a name="IDX697"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_unified_ideograph</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX689"></a>
+<a name="IDX698"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_radical</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX690"></a>
+<a name="IDX699"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_ids_unary_operator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
+<a name="IDX700"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_ids_binary_operator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX691"></a>
+<a name="IDX701"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_ids_trinary_operator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX692"></a>
+<a name="IDX702"></a>
</dt>
</dl>
@@ -2312,22 +2342,22 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_emoji</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX693"></a>
+<a name="IDX703"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_emoji_presentation</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX694"></a>
+<a name="IDX704"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_emoji_modifier</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX695"></a>
+<a name="IDX705"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_emoji_modifier_base</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX696"></a>
+<a name="IDX706"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_emoji_component</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX697"></a>
+<a name="IDX707"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_extended_pictographic</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX698"></a>
+<a name="IDX708"></a>
</dt>
</dl>
@@ -2335,89 +2365,154 @@ otherwise.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_property_zero_width</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX699"></a>
+<a name="IDX709"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_space</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX700"></a>
+<a name="IDX710"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_non_break</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX701"></a>
+<a name="IDX711"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_iso_control</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX702"></a>
+<a name="IDX712"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_format_control</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX703"></a>
+<a name="IDX713"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_prepended_concatenation_mark</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
+<a name="IDX714"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_dash</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX704"></a>
+<a name="IDX715"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_hyphen</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX705"></a>
+<a name="IDX716"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_punctuation</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX706"></a>
+<a name="IDX717"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_line_separator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX707"></a>
+<a name="IDX718"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_paragraph_separator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX708"></a>
+<a name="IDX719"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_quotation_mark</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX709"></a>
+<a name="IDX720"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_sentence_terminal</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX710"></a>
+<a name="IDX721"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_terminal_punctuation</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX711"></a>
+<a name="IDX722"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_currency_symbol</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX712"></a>
+<a name="IDX723"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_math</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX713"></a>
+<a name="IDX724"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_other_math</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX714"></a>
+<a name="IDX725"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_paired_punctuation</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX715"></a>
+<a name="IDX726"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_left_of_pair</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX716"></a>
+<a name="IDX727"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_combining</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX717"></a>
+<a name="IDX728"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_composite</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX718"></a>
+<a name="IDX729"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_decimal_digit</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX719"></a>
+<a name="IDX730"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_numeric</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX720"></a>
+<a name="IDX731"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_diacritic</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX721"></a>
+<a name="IDX732"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_extender</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX722"></a>
+<a name="IDX733"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_ignorable_control</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX723"></a>
+<a name="IDX734"></a>
</dt>
<dt><u>Function:</u> bool <b>uc_is_property_regional_indicator</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX724"></a>
+<a name="IDX735"></a>
</dt>
</dl>
<hr size="6">
-<a name="Scripts"></a>
+<a name="Other-attributes"></a>
<a name="SEC49"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC49">8.10 Scripts</a> </h2>
+<h2 class="section"> <a href="libunistring_toc.html#TOC49">8.10 Other attributes</a> </h2>
+
+<p>This section defines non-boolean attributes of Unicode characters.
+</p>
+
+<hr size="6">
+<a name="Indic-conjunct-break"></a>
+<a name="SEC50"></a>
+<h3 class="subsection"> <a href="libunistring_toc.html#TOC50">8.10.1 Indic conjunct break</a> </h3>
+
+<p>The Indic_Conjunct_Break attribute is used when determining the grapheme
+cluster boundary in Indic scripts.
+</p>
+<p>The Indic_Conjunct_Break attribute has the following possible values:
+</p>
+<dl>
+<dt><u>Constant:</u> int <b>UC_INDIC_CONJUNCT_BREAK_NONE</b>
+<a name="IDX736"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_INDIC_CONJUNCT_BREAK_CONSONANT</b>
+<a name="IDX737"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_INDIC_CONJUNCT_BREAK_LINKER</b>
+<a name="IDX738"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_INDIC_CONJUNCT_BREAK_EXTEND</b>
+<a name="IDX739"></a>
+</dt>
+</dl>
+
+<p>The following functions implement the association between an
+Indic_Conjunct_Break value and its name.
+</p>
+<dl>
+<dt><u>Function:</u> const char * <b>uc_indic_conjunct_break_name</b><i> (int&nbsp;<var>indic_conjunct_break</var>)</i>
+<a name="IDX740"></a>
+</dt>
+<dd><p>Returns the name of an Indic_Conjunct_Break value.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>uc_indic_conjunct_break_byname</b><i> (const&nbsp;char&nbsp;*<var>indic_conjunct_break_name</var>)</i>
+<a name="IDX741"></a>
+</dt>
+<dd><p>Returns the Indic_Conjunct_Break value given by name, e.g. <code>&quot;Consonant&quot;</code>.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
+</p></dd></dl>
+
+<p>The following function gives the Indic_Conjunct_Break attribute of every
+Unicode character.
+</p>
+<dl>
+<dt><u>Function:</u> int <b>uc_indic_conjunct_break</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
+<a name="IDX742"></a>
+</dt>
+<dd><p>Returns the Indic_Conjunct_Break attribute of a Unicode character.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Scripts"></a>
+<a name="SEC51"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC51">8.11 Scripts</a> </h2>
<p>The Unicode characters are subdivided into scripts.
</p>
@@ -2425,7 +2520,7 @@ otherwise.
</p>
<dl>
<dt><u>Type:</u> <b>uc_script_t</b>
-<a name="IDX725"></a>
+<a name="IDX743"></a>
</dt>
<dd><p>This data type is a structure type that refers to statically allocated
read-only data. It contains the following fields:
@@ -2435,12 +2530,12 @@ read-only data. It contains the following fields:
<p>The <code>name</code> field contains the name of the script.
</p></dd></dl>
-<a name="IDX726"></a>
+<a name="IDX744"></a>
<p>The following functions look up a script.
</p>
<dl>
<dt><u>Function:</u> const uc_script_t * <b>uc_script</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX727"></a>
+<a name="IDX745"></a>
</dt>
<dd><p>Returns the script of a Unicode character. Returns NULL if <var>uc</var> does not
belong to any script.
@@ -2448,7 +2543,7 @@ belong to any script.
<dl>
<dt><u>Function:</u> const uc_script_t * <b>uc_script_byname</b><i> (const&nbsp;char&nbsp;*<var>script_name</var>)</i>
-<a name="IDX728"></a>
+<a name="IDX746"></a>
</dt>
<dd><p>Returns the script given by its name, e.g. <code>&quot;HAN&quot;</code>. Returns NULL if a
script with the given name does not exist.
@@ -2458,7 +2553,7 @@ script with the given name does not exist.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_script</b><i> (ucs4_t&nbsp;<var>uc</var>, const&nbsp;uc_script_t&nbsp;*<var>script</var>)</i>
-<a name="IDX729"></a>
+<a name="IDX747"></a>
</dt>
<dd><p>Tests whether a Unicode character belongs to a given script.
</p></dd></dl>
@@ -2467,7 +2562,7 @@ script with the given name does not exist.
</p>
<dl>
<dt><u>Function:</u> void <b>uc_all_scripts</b><i> (const&nbsp;uc_script_t&nbsp;**<var>scripts</var>, size_t&nbsp;*<var>count</var>)</i>
-<a name="IDX730"></a>
+<a name="IDX748"></a>
</dt>
<dd><p>Get the list of all scripts. Stores a pointer to an array of all scripts in
<code>*<var>scripts</var></code> and the length of this array in <code>*<var>count</var></code>.
@@ -2475,8 +2570,8 @@ script with the given name does not exist.
<hr size="6">
<a name="Blocks"></a>
-<a name="SEC50"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC50">8.11 Blocks</a> </h2>
+<a name="SEC52"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC52">8.12 Blocks</a> </h2>
<p>The Unicode characters are subdivided into blocks. A block is an interval of
Unicode code points.
@@ -2485,7 +2580,7 @@ Unicode code points.
</p>
<dl>
<dt><u>Type:</u> <b>uc_block_t</b>
-<a name="IDX731"></a>
+<a name="IDX749"></a>
</dt>
<dd><p>This data type is a structure type that refers to statically allocated data.
It contains the following fields:
@@ -2501,12 +2596,12 @@ const char *name;
<p>The <code>name</code> field is the name of the block.
</p></dd></dl>
-<a name="IDX732"></a>
+<a name="IDX750"></a>
<p>The following function looks up a block.
</p>
<dl>
<dt><u>Function:</u> const uc_block_t * <b>uc_block</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX733"></a>
+<a name="IDX751"></a>
</dt>
<dd><p>Returns the block a character belongs to.
</p></dd></dl>
@@ -2515,7 +2610,7 @@ const char *name;
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_block</b><i> (ucs4_t&nbsp;<var>uc</var>, const&nbsp;uc_block_t&nbsp;*<var>block</var>)</i>
-<a name="IDX734"></a>
+<a name="IDX752"></a>
</dt>
<dd><p>Tests whether a Unicode character belongs to a given block.
</p></dd></dl>
@@ -2524,7 +2619,7 @@ const char *name;
</p>
<dl>
<dt><u>Function:</u> void <b>uc_all_blocks</b><i> (const&nbsp;uc_block_t&nbsp;**<var>blocks</var>, size_t&nbsp;*<var>count</var>)</i>
-<a name="IDX735"></a>
+<a name="IDX753"></a>
</dt>
<dd><p>Get the list of all blocks. Stores a pointer to an array of all blocks in
<code>*<var>blocks</var></code> and the length of this array in <code>*<var>count</var></code>.
@@ -2532,22 +2627,22 @@ const char *name;
<hr size="6">
<a name="ISO-C-and-Java-syntax"></a>
-<a name="SEC51"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC51">8.12 ISO C and Java syntax</a> </h2>
+<a name="SEC53"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC53">8.13 ISO C and Java syntax</a> </h2>
<p>The following properties are taken from language standards. The supported
language standards are ISO C 99 and Java.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_c_whitespace</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX736"></a>
+<a name="IDX754"></a>
</dt>
<dd><p>Tests whether a Unicode character is considered whitespace in ISO C 99.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>uc_is_java_whitespace</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX737"></a>
+<a name="IDX755"></a>
</dt>
<dd><p>Tests whether a Unicode character is considered whitespace in Java.
</p></dd></dl>
@@ -2557,7 +2652,7 @@ language standards are ISO C 99 and Java.
</p>
<dl>
<dt><u>Constant:</u> int <b>UC_IDENTIFIER_START</b>
-<a name="IDX738"></a>
+<a name="IDX756"></a>
</dt>
<dd><p>This return value means that the given character is valid as first or
subsequent character in an identifier.
@@ -2565,7 +2660,7 @@ subsequent character in an identifier.
<dl>
<dt><u>Constant:</u> int <b>UC_IDENTIFIER_VALID</b>
-<a name="IDX739"></a>
+<a name="IDX757"></a>
</dt>
<dd><p>This return value means that the given character is valid as subsequent
character only.
@@ -2573,14 +2668,14 @@ character only.
<dl>
<dt><u>Constant:</u> int <b>UC_IDENTIFIER_INVALID</b>
-<a name="IDX740"></a>
+<a name="IDX758"></a>
</dt>
<dd><p>This return value means that the given character is not valid in an identifier.
</p></dd></dl>
<dl>
<dt><u>Constant:</u> int <b>UC_IDENTIFIER_IGNORABLE</b>
-<a name="IDX741"></a>
+<a name="IDX759"></a>
</dt>
<dd><p>This return value (only for Java) means that the given character is ignorable.
</p></dd></dl>
@@ -2588,19 +2683,19 @@ character only.
<p>The following function determine whether a given character can be a constituent
of an identifier in the given programming language.
</p>
-<a name="IDX742"></a>
+<a name="IDX760"></a>
<dl>
<dt><u>Function:</u> int <b>uc_c_ident_category</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX743"></a>
+<a name="IDX761"></a>
</dt>
<dd><p>Returns the categorization of a Unicode character with respect to the ISO C 99
identifier syntax.
</p></dd></dl>
-<a name="IDX744"></a>
+<a name="IDX762"></a>
<dl>
<dt><u>Function:</u> int <b>uc_java_ident_category</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX745"></a>
+<a name="IDX763"></a>
</dt>
<dd><p>Returns the categorization of a Unicode character with respect to the Java
identifier syntax.
@@ -2608,8 +2703,8 @@ identifier syntax.
<hr size="6">
<a name="Classifications-like-in-ISO-C"></a>
-<a name="SEC52"></a>
-<h2 class="section"> <a href="libunistring_toc.html#TOC52">8.13 Classifications like in ISO C</a> </h2>
+<a name="SEC54"></a>
+<h2 class="section"> <a href="libunistring_toc.html#TOC54">8.14 Classifications like in ISO C</a> </h2>
<p>The following character classifications mimic those declared in the ISO C
header files <code>&lt;ctype.h&gt;</code> and <code>&lt;wctype.h&gt;</code>. These functions are
@@ -2620,7 +2715,7 @@ APIs to Unicode strings.
</p>
<dl>
<dt><u>Function:</u> bool <b>uc_is_alnum</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX746"></a>
+<a name="IDX764"></a>
</dt>
<dd><p>Tests for any character for which <code>uc_is_alpha</code> or <code>uc_is_digit</code> is
true.
@@ -2628,7 +2723,7 @@ true.
<dl>
<dt><u>Function:</u> bool <b>uc_is_alpha</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX747"></a>
+<a name="IDX765"></a>
</dt>
<dd><p>Tests for any character for which <code>uc_is_upper</code> or <code>uc_is_lower</code> is
true, or any character that is one of a locale-specific set of characters for
@@ -2638,21 +2733,21 @@ which none of <code>uc_is_cntrl</code>, <code>uc_is_digit</code>, <code>uc_is_pu
<dl>
<dt><u>Function:</u> bool <b>uc_is_cntrl</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX748"></a>
+<a name="IDX766"></a>
</dt>
<dd><p>Tests for any control character.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>uc_is_digit</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX749"></a>
+<a name="IDX767"></a>
</dt>
<dd><p>Tests for any character that corresponds to a decimal-digit character.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>uc_is_graph</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX750"></a>
+<a name="IDX768"></a>
</dt>
<dd><p>Tests for any character for which <code>uc_is_print</code> is true and
<code>uc_is_space</code> is false.
@@ -2660,7 +2755,7 @@ which none of <code>uc_is_cntrl</code>, <code>uc_is_digit</code>, <code>uc_is_pu
<dl>
<dt><u>Function:</u> bool <b>uc_is_lower</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX751"></a>
+<a name="IDX769"></a>
</dt>
<dd><p>Tests for any character that corresponds to a lowercase letter or is one
of a locale-specific set of characters for which none of <code>uc_is_cntrl</code>,
@@ -2669,14 +2764,14 @@ of a locale-specific set of characters for which none of <code>uc_is_cntrl</code
<dl>
<dt><u>Function:</u> bool <b>uc_is_print</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX752"></a>
+<a name="IDX770"></a>
</dt>
<dd><p>Tests for any printing character.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>uc_is_punct</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX753"></a>
+<a name="IDX771"></a>
</dt>
<dd><p>Tests for any printing character that is one of a locale-specific set of
characters for which neither <code>uc_is_space</code> nor <code>uc_is_alnum</code> is true.
@@ -2684,7 +2779,7 @@ characters for which neither <code>uc_is_space</code> nor <code>uc_is_alnum</cod
<dl>
<dt><u>Function:</u> bool <b>uc_is_space</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX754"></a>
+<a name="IDX772"></a>
</dt>
<dd><p>Test for any character that corresponds to a locale-specific set of characters
for which none of <code>uc_is_alnum</code>, <code>uc_is_graph</code>, or <code>uc_is_punct</code>
@@ -2693,7 +2788,7 @@ is true.
<dl>
<dt><u>Function:</u> bool <b>uc_is_upper</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX755"></a>
+<a name="IDX773"></a>
</dt>
<dd><p>Tests for any character that corresponds to an uppercase letter or is one
of a locale-specific set of characters for which none of <code>uc_is_cntrl</code>,
@@ -2702,14 +2797,14 @@ of a locale-specific set of characters for which none of <code>uc_is_cntrl</code
<dl>
<dt><u>Function:</u> bool <b>uc_is_xdigit</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX756"></a>
+<a name="IDX774"></a>
</dt>
<dd><p>Tests for any character that corresponds to a hexadecimal-digit character.
</p></dd></dl>
<dl>
<dt><u>Function:</u> bool <b>uc_is_blank</b><i> (ucs4_t&nbsp;<var>uc</var>)</i>
-<a name="IDX757"></a>
+<a name="IDX775"></a>
</dt>
<dd><p>Tests for any character that corresponds to a standard blank character or
a locale-specific set of characters for which <code>uc_is_alnum</code> is false.
@@ -2717,7 +2812,7 @@ a locale-specific set of characters for which <code>uc_is_alnum</code> is false.
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#SEC33" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_9.html#SEC53" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_9.html#SEC55" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -2725,12 +2820,12 @@ a locale-specific set of characters for which <code>uc_is_alnum</code> is false.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_9.html b/doc/libunistring_9.html
index 70037143..f7c495f1 100644
--- a/doc/libunistring_9.html
+++ b/doc/libunistring_9.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -43,7 +43,7 @@ ul.toc {list-style: none}
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="libunistring_8.html#SEC33" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_10.html#SEC54" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_10.html#SEC56" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -51,20 +51,20 @@ ul.toc {list-style: none}
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<hr size="2">
<a name="uniwidth_002eh"></a>
-<a name="SEC53"></a>
-<h1 class="chapter"> <a href="libunistring_toc.html#TOC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a> </h1>
+<a name="SEC55"></a>
+<h1 class="chapter"> <a href="libunistring_toc.html#TOC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a> </h1>
<p>This include file declares functions that return the display width, measured
in columns, of characters or strings, when output to a device that uses
non-proportional fonts.
</p>
-<a name="IDX758"></a>
+<a name="IDX776"></a>
<p>Note that for some rarely used characters the actual fonts or terminal
emulators can use a different width. There is no mechanism for communicating
the display width of characters across a Unix pseudo-terminal (tty). Also,
@@ -76,12 +76,12 @@ most characters but can fail to represent the actual display width.
<p>These functions are locale dependent. The <var>encoding</var> argument identifies
the encoding (e.g. <code>&quot;ISO-8859-2&quot;</code> for Polish).
</p>
-<a name="IDX759"></a>
-<a name="IDX760"></a>
-<a name="IDX761"></a>
+<a name="IDX777"></a>
+<a name="IDX778"></a>
+<a name="IDX779"></a>
<dl>
<dt><u>Function:</u> int <b>uc_width</b><i> (ucs4_t&nbsp;<var>uc</var>, const&nbsp;char&nbsp;*<var>encoding</var>)</i>
-<a name="IDX762"></a>
+<a name="IDX780"></a>
</dt>
<dd><p>Determines and returns the number of column positions required for <var>uc</var>.
Returns -1 if <var>uc</var> is a control character that has an influence on the
@@ -90,13 +90,13 @@ column position when output.
<dl>
<dt><u>Function:</u> int <b>u8_width</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>encoding</var>)</i>
-<a name="IDX763"></a>
+<a name="IDX781"></a>
</dt>
<dt><u>Function:</u> int <b>u16_width</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>encoding</var>)</i>
-<a name="IDX764"></a>
+<a name="IDX782"></a>
</dt>
<dt><u>Function:</u> int <b>u32_width</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, size_t&nbsp;<var>n</var>, const&nbsp;char&nbsp;*<var>encoding</var>)</i>
-<a name="IDX765"></a>
+<a name="IDX783"></a>
</dt>
<dd><p>Determines and returns the number of column positions required for first
<var>n</var> units (or fewer if <var>s</var> ends before this) in <var>s</var>. This
@@ -105,13 +105,13 @@ function ignores control characters in the string.
<dl>
<dt><u>Function:</u> int <b>u8_strwidth</b><i> (const&nbsp;uint8_t&nbsp;*<var>s</var>, const&nbsp;char&nbsp;*<var>encoding</var>)</i>
-<a name="IDX766"></a>
+<a name="IDX784"></a>
</dt>
<dt><u>Function:</u> int <b>u16_strwidth</b><i> (const&nbsp;uint16_t&nbsp;*<var>s</var>, const&nbsp;char&nbsp;*<var>encoding</var>)</i>
-<a name="IDX767"></a>
+<a name="IDX785"></a>
</dt>
<dt><u>Function:</u> int <b>u32_strwidth</b><i> (const&nbsp;uint32_t&nbsp;*<var>s</var>, const&nbsp;char&nbsp;*<var>encoding</var>)</i>
-<a name="IDX768"></a>
+<a name="IDX786"></a>
</dt>
<dd><p>Determines and returns the number of column positions required for <var>s</var>.
This function ignores control characters in the string.
@@ -119,7 +119,7 @@ This function ignores control characters in the string.
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="libunistring_8.html#SEC33" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_10.html#SEC54" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_10.html#SEC56" title="Next chapter"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
@@ -127,12 +127,12 @@ This function ignores control characters in the string.
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_abt.html b/doc/libunistring_abt.html
index 4f28141e..712cc064 100644
--- a/doc/libunistring_abt.html
+++ b/doc/libunistring_abt.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -45,12 +45,12 @@ ul.toc {list-style: none}
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1>About This Document</h1>
<p>
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</p>
<p>
The buttons in the navigation panels have the following meaning:
@@ -153,12 +153,12 @@ ul.toc {list-style: none}
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_fot.html b/doc/libunistring_fot.html
new file mode 100644
index 00000000..32a0059d
--- /dev/null
+++ b/doc/libunistring_fot.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
+<!--
+Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
+ Karl Berry <karl@freefriends.org>
+ Olaf Bachmann <obachman@mathematik.uni-kl.de>
+ and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug@nongnu.org>
+
+-->
+<head>
+<title>GNU libunistring: Footnotes</title>
+
+<meta name="description" content="GNU libunistring: Footnotes">
+<meta name="keywords" content="GNU libunistring: Footnotes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.78a">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Foot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Footnotes</h1>
+<h3><a name="FOOT1" href="libunistring_2.html#DOCF1">(1)</a></h3>
+<p>A NUL
+unit as terminator is not needed, since the number of units is given by
+<var>n</var>. If some of the units of the string are NUL, they are just
+regular units; they are not interpreted as terminators.
+</p><hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/doc/libunistring_toc.html b/doc/libunistring_toc.html
index 9065aaaf..e5e5b0ca 100644
--- a/doc/libunistring_toc.html
+++ b/doc/libunistring_toc.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 16 2022 by texi2html 1.78a -->
+<!-- Created on February, 24 2024 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -44,7 +44,7 @@ ul.toc {list-style: none}
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h1 class="settitle">GNU libunistring</h1>
@@ -117,58 +117,62 @@ ul.toc {list-style: none}
<li><a name="TOC47" href="libunistring_8.html#SEC47">8.9.1 Properties as objects &ndash; the object oriented API</a></li>
<li><a name="TOC48" href="libunistring_8.html#SEC48">8.9.2 Properties as functions &ndash; the functional API</a></li>
</ul></li>
- <li><a name="TOC49" href="libunistring_8.html#SEC49">8.10 Scripts</a></li>
- <li><a name="TOC50" href="libunistring_8.html#SEC50">8.11 Blocks</a></li>
- <li><a name="TOC51" href="libunistring_8.html#SEC51">8.12 ISO C and Java syntax</a></li>
- <li><a name="TOC52" href="libunistring_8.html#SEC52">8.13 Classifications like in ISO C</a></li>
+ <li><a name="TOC49" href="libunistring_8.html#SEC49">8.10 Other attributes</a>
+ <ul class="toc">
+ <li><a name="TOC50" href="libunistring_8.html#SEC50">8.10.1 Indic conjunct break</a></li>
+ </ul></li>
+ <li><a name="TOC51" href="libunistring_8.html#SEC51">8.11 Scripts</a></li>
+ <li><a name="TOC52" href="libunistring_8.html#SEC52">8.12 Blocks</a></li>
+ <li><a name="TOC53" href="libunistring_8.html#SEC53">8.13 ISO C and Java syntax</a></li>
+ <li><a name="TOC54" href="libunistring_8.html#SEC54">8.14 Classifications like in ISO C</a></li>
</ul></li>
- <li><a name="TOC53" href="libunistring_9.html#SEC53">9. Display width <code>&lt;uniwidth.h&gt;</code></a></li>
- <li><a name="TOC54" href="libunistring_10.html#SEC54">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a>
+ <li><a name="TOC55" href="libunistring_9.html#SEC55">9. Display width <code>&lt;uniwidth.h&gt;</code></a></li>
+ <li><a name="TOC56" href="libunistring_10.html#SEC56">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a>
<ul class="toc">
- <li><a name="TOC55" href="libunistring_10.html#SEC55">10.1 Grapheme cluster breaks in a string</a></li>
- <li><a name="TOC56" href="libunistring_10.html#SEC56">10.2 Grapheme cluster break property</a></li>
+ <li><a name="TOC57" href="libunistring_10.html#SEC57">10.1 Grapheme cluster breaks in a string</a></li>
+ <li><a name="TOC58" href="libunistring_10.html#SEC58">10.2 Grapheme cluster break property</a></li>
</ul></li>
- <li><a name="TOC57" href="libunistring_11.html#SEC57">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a>
+ <li><a name="TOC59" href="libunistring_11.html#SEC59">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a>
<ul class="toc">
- <li><a name="TOC58" href="libunistring_11.html#SEC58">11.1 Word breaks in a string</a></li>
- <li><a name="TOC59" href="libunistring_11.html#SEC59">11.2 Word break property</a></li>
+ <li><a name="TOC60" href="libunistring_11.html#SEC60">11.1 Word breaks in a string</a></li>
+ <li><a name="TOC61" href="libunistring_11.html#SEC61">11.2 Word break property</a></li>
</ul></li>
- <li><a name="TOC60" href="libunistring_12.html#SEC60">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></li>
- <li><a name="TOC61" href="libunistring_13.html#SEC61">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a>
+ <li><a name="TOC62" href="libunistring_12.html#SEC62">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></li>
+ <li><a name="TOC63" href="libunistring_13.html#SEC63">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a>
<ul class="toc">
- <li><a name="TOC62" href="libunistring_13.html#SEC62">13.1 Decomposition of Unicode characters</a></li>
- <li><a name="TOC63" href="libunistring_13.html#SEC63">13.2 Composition of Unicode characters</a></li>
- <li><a name="TOC64" href="libunistring_13.html#SEC64">13.3 Normalization of strings</a></li>
- <li><a name="TOC65" href="libunistring_13.html#SEC65">13.4 Normalizing comparisons</a></li>
- <li><a name="TOC66" href="libunistring_13.html#SEC66">13.5 Normalization of streams of Unicode characters</a></li>
+ <li><a name="TOC64" href="libunistring_13.html#SEC64">13.1 Decomposition of Unicode characters</a></li>
+ <li><a name="TOC65" href="libunistring_13.html#SEC65">13.2 Composition of Unicode characters</a></li>
+ <li><a name="TOC66" href="libunistring_13.html#SEC66">13.3 Normalization of strings</a></li>
+ <li><a name="TOC67" href="libunistring_13.html#SEC67">13.4 Normalizing comparisons</a></li>
+ <li><a name="TOC68" href="libunistring_13.html#SEC68">13.5 Normalization of streams of Unicode characters</a></li>
</ul></li>
- <li><a name="TOC67" href="libunistring_14.html#SEC67">14. Case mappings <code>&lt;unicase.h&gt;</code></a>
+ <li><a name="TOC69" href="libunistring_14.html#SEC69">14. Case mappings <code>&lt;unicase.h&gt;</code></a>
<ul class="toc">
- <li><a name="TOC68" href="libunistring_14.html#SEC68">14.1 Case mappings of characters</a></li>
- <li><a name="TOC69" href="libunistring_14.html#SEC69">14.2 Case mappings of strings</a></li>
- <li><a name="TOC70" href="libunistring_14.html#SEC70">14.3 Case mappings of substrings</a></li>
- <li><a name="TOC71" href="libunistring_14.html#SEC71">14.4 Case insensitive comparison</a></li>
- <li><a name="TOC72" href="libunistring_14.html#SEC72">14.5 Case detection</a></li>
+ <li><a name="TOC70" href="libunistring_14.html#SEC70">14.1 Case mappings of characters</a></li>
+ <li><a name="TOC71" href="libunistring_14.html#SEC71">14.2 Case mappings of strings</a></li>
+ <li><a name="TOC72" href="libunistring_14.html#SEC72">14.3 Case mappings of substrings</a></li>
+ <li><a name="TOC73" href="libunistring_14.html#SEC73">14.4 Case insensitive comparison</a></li>
+ <li><a name="TOC74" href="libunistring_14.html#SEC74">14.5 Case detection</a></li>
</ul></li>
- <li><a name="TOC73" href="libunistring_15.html#SEC73">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a></li>
- <li><a name="TOC74" href="libunistring_16.html#SEC74">16. Using the library</a>
+ <li><a name="TOC75" href="libunistring_15.html#SEC75">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a></li>
+ <li><a name="TOC76" href="libunistring_16.html#SEC76">16. Using the library</a>
<ul class="toc">
- <li><a name="TOC75" href="libunistring_16.html#SEC75">16.1 Installation</a></li>
- <li><a name="TOC76" href="libunistring_16.html#SEC76">16.2 Compiler options</a></li>
- <li><a name="TOC77" href="libunistring_16.html#SEC77">16.3 Include files</a></li>
- <li><a name="TOC78" href="libunistring_16.html#SEC78">16.4 Autoconf macro</a></li>
- <li><a name="TOC79" href="libunistring_16.html#SEC79">16.5 Reporting problems</a></li>
+ <li><a name="TOC77" href="libunistring_16.html#SEC77">16.1 Installation</a></li>
+ <li><a name="TOC78" href="libunistring_16.html#SEC78">16.2 Compiler options</a></li>
+ <li><a name="TOC79" href="libunistring_16.html#SEC79">16.3 Include files</a></li>
+ <li><a name="TOC80" href="libunistring_16.html#SEC80">16.4 Autoconf macro</a></li>
+ <li><a name="TOC81" href="libunistring_16.html#SEC81">16.5 Reporting problems</a></li>
</ul></li>
- <li><a name="TOC80" href="libunistring_17.html#SEC80">17. More advanced functionality</a></li>
- <li><a name="TOC81" href="libunistring_18.html#SEC81">A. The <code>wchar_t</code> mess</a></li>
- <li><a name="TOC82" href="libunistring_19.html#SEC82">B. The <code>char32_t</code> problem</a></li>
- <li><a name="TOC83" href="libunistring_20.html#SEC83">C. Licenses</a>
+ <li><a name="TOC82" href="libunistring_17.html#SEC82">17. More advanced functionality</a></li>
+ <li><a name="TOC83" href="libunistring_18.html#SEC83">A. The <code>wchar_t</code> mess</a></li>
+ <li><a name="TOC84" href="libunistring_19.html#SEC84">B. The <code>char32_t</code> problem</a></li>
+ <li><a name="TOC85" href="libunistring_20.html#SEC85">C. Licenses</a>
<ul class="toc">
- <li><a name="TOC84" href="libunistring_20.html#SEC84">C.1 GNU GENERAL PUBLIC LICENSE</a></li>
- <li><a name="TOC85" href="libunistring_20.html#SEC89">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a></li>
- <li><a name="TOC86" href="libunistring_20.html#SEC90">C.3 GNU Free Documentation License</a></li>
+ <li><a name="TOC86" href="libunistring_20.html#SEC86">C.1 GNU GENERAL PUBLIC LICENSE</a></li>
+ <li><a name="TOC87" href="libunistring_20.html#SEC91">C.2 GNU LESSER GENERAL PUBLIC LICENSE</a></li>
+ <li><a name="TOC88" href="libunistring_20.html#SEC92">C.3 GNU Free Documentation License</a></li>
</ul></li>
- <li><a name="TOC87" href="libunistring_21.html#SEC92">Index</a></li>
+ <li><a name="TOC89" href="libunistring_21.html#SEC94">Index</a></li>
</ul>
</div>
@@ -180,12 +184,12 @@ ul.toc {list-style: none}
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_21.html#SEC92" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_21.html#SEC94" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 16 2022</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 24 2024</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/stamp-vti b/doc/stamp-vti
index b2810bdc..7ecb9f81 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
-@set UPDATED 4 January 2022
-@set UPDATED-MONTH January 2022
-@set EDITION 1.1
-@set VERSION 1.1
+@set UPDATED 23 February 2024
+@set UPDATED-MONTH February 2024
+@set EDITION 1.2
+@set VERSION 1.2
diff --git a/doc/unicase.texi b/doc/unicase.texi
index de8442c2..c2350c73 100644
--- a/doc/unicase.texi
+++ b/doc/unicase.texi
@@ -48,7 +48,7 @@ The titlecase mapping of a character is to be used when the character should
look like upper case and the following characters are lower cased.
For most characters, this is the same as the uppercase mapping. There are
-only few characters where the title case variant and the uuper case variant
+only few characters where the title case variant and the upper case variant
are different. These characters occur in the Latin writing of the Croatian,
Bosnian, and Serbian languages.
@@ -80,7 +80,7 @@ Bosnian, and Serbian languages.
@cindex lowercasing
@cindex titlecasing
Case mapping should always be performed on entire strings, not on individual
-characters. The functions in this sections do so.
+characters. The functions in this section do so.
These functions allow to apply a normalization after the case mapping. The
reason is that if you want to treat @samp{@"{a}} and @samp{@"{A}} the same,
@@ -282,6 +282,9 @@ The @var{resultbuf} and @var{lengthp} arguments are as described in
chapter @ref{Conventions}.
@end deftypefun
+The following functions ignore locale-dependent collation rules, but do
+use locale-dependent case mappings (if @var{iso639_language} is not NULL).
+
@deftypefun int u8_casecmp (const@tie{}uint8_t@tie{}*@var{s1}, size_t@tie{}@var{n1}, const@tie{}uint8_t@tie{}*@var{s2}, size_t@tie{}@var{n2}, const@tie{}char@tie{}*@var{iso639_language}, uninorm_t@tie{}@var{nf}, int@tie{}*@var{resultp})
@deftypefunx int u16_casecmp (const@tie{}uint16_t@tie{}*@var{s1}, size_t@tie{}@var{n1}, const@tie{}uint16_t@tie{}*@var{s2}, size_t@tie{}@var{n2}, const@tie{}char@tie{}*@var{iso639_language}, uninorm_t@tie{}@var{nf}, int@tie{}*@var{resultp})
@deftypefunx int u32_casecmp (const@tie{}uint32_t@tie{}*@var{s1}, size_t@tie{}@var{n1}, const@tie{}uint32_t@tie{}*@var{s2}, size_t@tie{}@var{n2}, const@tie{}char@tie{}*@var{iso639_language}, uninorm_t@tie{}@var{nf}, int@tie{}*@var{resultp})
diff --git a/doc/unictype.texi b/doc/unictype.texi
index ac20f778..e24cba9d 100644
--- a/doc/unictype.texi
+++ b/doc/unictype.texi
@@ -21,6 +21,7 @@ in the presence of specific Unicode characters.
* Mirrored character::
* Arabic shaping::
* Properties::
+* Other attributes::
* Scripts::
* Blocks::
* ISO C and Java syntax::
@@ -715,6 +716,16 @@ The following function looks up the mirrored character of a Unicode character.
Stores the mirrored character of a Unicode character @var{uc} in
@code{*@var{puc}} and returns @code{true}, if it exists. Otherwise it
stores @var{uc} unmodified in @code{*@var{puc}} and returns @code{false}.
+
+Note: It is possible for this function to return @code{true} and set
+@code{*@var{puc}} to @code{0xFFFD}.
+This happens when the character has the bidi mirror property (that is, it
+should be displayed through a mirrored glyph) but this mirrored glyph
+does not exist as a Unicode character; thus a rendering engine needs to
+synthesize it artificially or pick it from an appropriate font.
+@c The list of such characters is found at the end of BidiMirroring.txt.
+This affects mostly mathematical operators.
+See section ``Bidi Mirrored'' of the Unicode standard.
@end deftypefun
@node Arabic shaping
@@ -1003,6 +1014,8 @@ The following properties are related to identifiers.
@deftypevrx Constant uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE
@deftypevrx Constant uc_property_t UC_PROPERTY_XID_START
@deftypevrx Constant uc_property_t UC_PROPERTY_XID_CONTINUE
+@deftypevrx Constant uc_property_t UC_PROPERTY_ID_COMPAT_MATH_START
+@deftypevrx Constant uc_property_t UC_PROPERTY_ID_COMPAT_MATH_CONTINUE
@deftypevrx Constant uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE
@deftypevrx Constant uc_property_t UC_PROPERTY_PATTERN_SYNTAX
@end deftypevr
@@ -1048,6 +1061,7 @@ The following properties deal with CJK.
@deftypevr Constant uc_property_t UC_PROPERTY_IDEOGRAPHIC
@deftypevrx Constant uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH
@deftypevrx Constant uc_property_t UC_PROPERTY_RADICAL
+@deftypevrx Constant uc_property_t UC_PROPERTY_IDS_UNARY_OPERATOR
@deftypevrx Constant uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR
@deftypevrx Constant uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR
@end deftypevr
@@ -1069,6 +1083,7 @@ Other miscellaneous properties are:
@deftypevrx Constant uc_property_t UC_PROPERTY_NON_BREAK
@deftypevrx Constant uc_property_t UC_PROPERTY_ISO_CONTROL
@deftypevrx Constant uc_property_t UC_PROPERTY_FORMAT_CONTROL
+@deftypevrx Constant uc_property_t UC_PROPERTY_PREPENDED_CONCATENATION_MARK
@deftypevrx Constant uc_property_t UC_PROPERTY_DASH
@deftypevrx Constant uc_property_t UC_PROPERTY_HYPHEN
@deftypevrx Constant uc_property_t UC_PROPERTY_PUNCTUATION
@@ -1163,6 +1178,8 @@ The following properties are related to identifiers.
@deftypefunx bool uc_is_property_other_id_continue (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_xid_start (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_xid_continue (ucs4_t@tie{}@var{uc})
+@deftypefunx bool uc_is_property_id_compat_math_start (ucs4_t@tie{}@var{uc})
+@deftypefunx bool uc_is_property_id_compat_math_continue (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_pattern_white_space (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_pattern_syntax (ucs4_t@tie{}@var{uc})
@end deftypefun
@@ -1208,6 +1225,7 @@ The following properties deal with CJK.
@deftypefun bool uc_is_property_ideographic (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_unified_ideograph (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_radical (ucs4_t@tie{}@var{uc})
+@deftypefunx bool uc_is_property_ids_unary_operator (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_ids_binary_operator (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_ids_trinary_operator (ucs4_t@tie{}@var{uc})
@end deftypefun
@@ -1229,6 +1247,7 @@ Other miscellaneous properties are:
@deftypefunx bool uc_is_property_non_break (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_iso_control (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_format_control (ucs4_t@tie{}@var{uc})
+@deftypefunx bool uc_is_property_prepended_concatenation_mark (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_dash (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_hyphen (ucs4_t@tie{}@var{uc})
@deftypefunx bool uc_is_property_punctuation (ucs4_t@tie{}@var{uc})
@@ -1252,6 +1271,50 @@ Other miscellaneous properties are:
@deftypefunx bool uc_is_property_regional_indicator (ucs4_t@tie{}@var{uc})
@end deftypefun
+@node Other attributes
+@section Other attributes
+
+This section defines non-boolean attributes of Unicode characters.
+
+@menu
+* Indic conjunct break::
+@end menu
+
+@node Indic conjunct break
+@subsection Indic conjunct break
+
+@cindex Indic_Conjunct_Break
+The Indic_Conjunct_Break attribute is used when determining the grapheme
+cluster boundary in Indic scripts.
+
+The Indic_Conjunct_Break attribute has the following possible values:
+
+@deftypevr Constant int UC_INDIC_CONJUNCT_BREAK_NONE
+@deftypevrx Constant int UC_INDIC_CONJUNCT_BREAK_CONSONANT
+@deftypevrx Constant int UC_INDIC_CONJUNCT_BREAK_LINKER
+@deftypevrx Constant int UC_INDIC_CONJUNCT_BREAK_EXTEND
+@end deftypevr
+
+The following functions implement the association between an
+Indic_Conjunct_Break value and its name.
+
+@deftypefun {const char *} uc_indic_conjunct_break_name (int@tie{}@var{indic_conjunct_break})
+Returns the name of an Indic_Conjunct_Break value.
+@end deftypefun
+
+@deftypefun int uc_indic_conjunct_break_byname (const@tie{}char@tie{}*@var{indic_conjunct_break_name})
+Returns the Indic_Conjunct_Break value given by name, e.g@. @code{"Consonant"}.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
+@end deftypefun
+
+The following function gives the Indic_Conjunct_Break attribute of every
+Unicode character.
+
+@deftypefun int uc_indic_conjunct_break (ucs4_t@tie{}@var{uc})
+Returns the Indic_Conjunct_Break attribute of a Unicode character.
+@end deftypefun
+
@node Scripts
@section Scripts
diff --git a/doc/unigbrk.texi b/doc/unigbrk.texi
index e7e94d6a..16b8a608 100644
--- a/doc/unigbrk.texi
+++ b/doc/unigbrk.texi
@@ -47,8 +47,9 @@ Returns NULL if and only if @code{@var{s} == @var{end}}.
Note that these functions do not handle the case when a character
outside of the range between @var{s} and @var{end} is needed to
-determine the boundary. Use @func{_grapheme_breaks} functions for such
-cases.
+determine the boundary.
+This is the case in particular with syllables in Indic scripts or emojis.
+Use @func{_grapheme_breaks} functions for such cases.
@end deftypefun
@deftypefun void u8_grapheme_prev (const@tie{}uint8_t@tie{}*@var{s}, const@tie{}uint8_t@tie{}*@var{start})
@@ -60,8 +61,9 @@ Returns NULL if and only if @code{@var{s} == @var{start}}.
Note that these functions do not handle the case when a character
outside of the range between @var{start} and @var{s} is needed to
-determine the boundary. Use @func{_grapheme_breaks} functions for such
-cases.
+determine the boundary.
+This is the case in particular with syllables in Indic scripts or emojis.
+Use @func{_grapheme_breaks} functions for such cases.
Note also that these functions work only on well-formed Unicode strings.
@end deftypefun
@@ -151,6 +153,7 @@ described in the Unicode standard, because the standard says that they
are preferred.
Note that this function does not handle the case when three or more
-consecutive characters are needed to determine the boundary. Use
-@func{uc_grapheme_breaks} for such cases.
+consecutive characters are needed to determine the boundary.
+This is the case in particular with syllables in Indic scripts or emojis.
+Use @func{uc_grapheme_breaks} for such cases.
@end deftypefun
diff --git a/doc/unistdio.texi b/doc/unistdio.texi
index fa0fc002..c4e62b15 100644
--- a/doc/unistdio.texi
+++ b/doc/unistdio.texi
@@ -18,6 +18,8 @@ The format directive @samp{lU} takes an UTF-16 string
@item
The format directive @samp{llU} takes an UTF-32 string
(@code{const uint32_t *}).
+@item
+The format directive @samp{n} is not supported, for security reasons.
@end itemize
A function name with an infix @samp{v} indicates that a @code{va_list} is
diff --git a/doc/unistr.texi b/doc/unistr.texi
index d26a3f3c..8945c438 100644
--- a/doc/unistr.texi
+++ b/doc/unistr.texi
@@ -179,6 +179,16 @@ This function is similar to @posixfunc{memcpy}, except that it operates on
Unicode strings.
@end deftypefun
+@deftypefun {uint8_t *} u8_pcpy (uint8_t@tie{}*@var{dest}, const@tie{}uint8_t@tie{}*@var{src}, size_t@tie{}@var{n})
+@deftypefunx {uint16_t *} u16_pcpy (uint16_t@tie{}*@var{dest}, const@tie{}uint16_t@tie{}*@var{src}, size_t@tie{}@var{n})
+@deftypefunx {uint32_t *} u32_pcpy (uint32_t@tie{}*@var{dest}, const@tie{}uint32_t@tie{}*@var{src}, size_t@tie{}@var{n})
+Copies @var{n} units from @var{src} to @var{dest}, returning a pointer
+after the last written unit.
+
+This function is similar to @func{mempcpy}, except that it operates on
+Unicode strings.
+@end deftypefun
+
@deftypefun {uint8_t *} u8_move (uint8_t@tie{}*@var{dest}, const@tie{}uint8_t@tie{}*@var{src}, size_t@tie{}@var{n})
@deftypefunx {uint16_t *} u16_move (uint16_t@tie{}*@var{dest}, const@tie{}uint16_t@tie{}*@var{src}, size_t@tie{}@var{n})
@deftypefunx {uint32_t *} u32_move (uint32_t@tie{}*@var{dest}, const@tie{}uint32_t@tie{}*@var{src}, size_t@tie{}@var{n})
@@ -429,6 +439,7 @@ that it operates on Unicode strings.
@cindex comparing
The following functions compare two Unicode strings.
+They ignore locale-dependent collation rules.
@deftypefun int u8_strcmp (const@tie{}uint8_t@tie{}*@var{s1}, const@tie{}uint8_t@tie{}*@var{s2})
@deftypefunx int u16_strcmp (const@tie{}uint16_t@tie{}*@var{s1}, const@tie{}uint16_t@tie{}*@var{s2})
diff --git a/doc/version.texi b/doc/version.texi
index b2810bdc..7ecb9f81 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 4 January 2022
-@set UPDATED-MONTH January 2022
-@set EDITION 1.1
-@set VERSION 1.1
+@set UPDATED 23 February 2024
+@set UPDATED-MONTH February 2024
+@set EDITION 1.2
+@set VERSION 1.2
diff --git a/doc/wchar_t.texi b/doc/wchar_t.texi
index f5c239a5..28c63cdf 100644
--- a/doc/wchar_t.texi
+++ b/doc/wchar_t.texi
@@ -8,7 +8,8 @@ problem mentioned in the section @ref{char * strings}. They introduced
@item
a type @samp{wchar_t}, designed to encapsulate an entire character,
@item
-a ``wide string'' type @samp{wchar_t *}, and
+a ``wide string'' type @samp{wchar_t *}, with some API functions declared in
+@posixheader{wchar.h}, and
@item
functions declared in @posixheader{wctype.h} that were meant to supplant the
ones in @posixheader{ctype.h}.
@@ -18,8 +19,8 @@ Unfortunately, this API and its implementation has numerous problems:
@itemize @bullet
@item
-On AIX and Windows platforms, @code{wchar_t} is a 16-bit type. This
-means that it can never accommodate an entire Unicode character. Either
+On Windows platforms and on AIX in 32-bit mode, @code{wchar_t} is a 16-bit type.
+This means that it can never accommodate an entire Unicode character. Either
the @code{wchar_t *} strings are limited to characters in UCS-2 (the
``Basic Multilingual Plane'' of Unicode), or --- if @code{wchar_t *}
strings are encoded in UTF-16 --- a @code{wchar_t} represents only half